JS中的json数据详解
2012-02-29 22:55
246 查看
概述:一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
一、JSON的规则
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
规则如下:
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
5 元素值可具有的类型:string, number, object, array, true, false, null
二、解析JSON
为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。函数 eval 会把一个字符串当作它的参数。然后这个字符串会被当作 JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript 代码构成的,所以它本身是可执行的
三、在java后来使用json工具类来与json数据互相转换交互
a) 首先导入用到json工具类的jar包
json 需要那些类库进行支持
json-lib-**-jdk**.jar json的核心包
其他jar包
exmorph - ***.jar
morph-***.jar
morph-sandbox-**.jar
这三个包都是完成bean与bean之间的复制的包
使用apache的jar
commons-beanutils--**.jar 复制
commons-collections-***.jar对java.util的增强
commons-lang-***.jar对java.lang的增强
commons-logging-***日志包
b) 将java对象转换成JSON字符串
c) 讲java中的集合转换成JSON字符串
d) 将json字符串转换成java对象
//第一步定义出字符串
e) 讲json数组的字符串转换成java的集合对象
一、JSON的规则
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
规则如下:
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
5 元素值可具有的类型:string, number, object, array, true, false, null
二、解析JSON
为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。函数 eval 会把一个字符串当作它的参数。然后这个字符串会被当作 JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript 代码构成的,所以它本身是可执行的
三、在java后来使用json工具类来与json数据互相转换交互
a) 首先导入用到json工具类的jar包
json 需要那些类库进行支持
json-lib-**-jdk**.jar json的核心包
其他jar包
exmorph - ***.jar
morph-***.jar
morph-sandbox-**.jar
这三个包都是完成bean与bean之间的复制的包
使用apache的jar
commons-beanutils--**.jar 复制
commons-collections-***.jar对java.util的增强
commons-lang-***.jar对java.lang的增强
commons-logging-***日志包
b) 将java对象转换成JSON字符串
/*将java对象转换成JSON字符串*/ Teacher teacher=new Teacher(); teacher.setName("marico"); teacher.setSex("男"); teacher.setAge(28); teacher.setBirth(new Date()); List<Student> list=new ArrayList<Student>(); for(int i=0;i<3;i++){ Student stu=new Student(); stu.setName("marico"); list.add(stu); } teacher.setStudents(list); //需要引入类库 //转换方法 System.out.println(JSONObject.fromObject(teacher).toString());
c) 讲java中的集合转换成JSON字符串
List<Teacher> teas=new ArrayList<Teacher>(); for(int i=0;i<3;i++){ Teacher teacher=new Teacher(); teacher.setName("marico"+i); teacher.setSex("男"); teacher.setAge(28); teacher.setBirth(new Date()); teas.add(teacher); } System.out.println(JSONArray.fromObject(teas).toString());
d) 将json字符串转换成java对象
//第一步定义出字符串
teaObj="{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":20,\"month\":1,\"seconds\":25,\"time\":1330392025906,\"timezoneOffset\":-480,\"year\":112},\"name\":\"marico\",\"sex\":\"男\"}"; //第二步:使用JsonObject.fromObject方法将其字符串转换成一个JsonObject对象 JSONObject jsonObj = JSONObject.fromObject(teaObj); //第三步:调用JsonObject的 toBean的方法 将其转换成一个 Object对象 Teacher teac = (Teacher) JSONObject.toBean(jsonObj,Teacher.class); System.out.println(teac.toString());
e) 讲json数组的字符串转换成java的集合对象
//第一步:声明出字符串 String teaArr = "[{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"陈红军\",\"sex\":\"男\"},{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"marico\",\"sex\":\"男\"},{\"age\":28,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":28,\"month\":1,\"seconds\":44,\"time\":1330392524093,\"timezoneOffset\":-480,\"year\":112},\"name\":\"marico\",\"sex\":\"男\"}]"; //第二步:调用JsonArray.fromObject方法将其字符串转换成一个JsonArray对象 JSONArray jsonArra = JSONArray.fromObject(teaArr); //第三步:调用 toCollection 将其转换成 指定泛型的List集合对象 List<Teacher> teas = (List<Teacher>) JSONArray.toCollection(jsonArra, Teacher.class); for(Teacher tea:teas){ System.out.println(tea.toString());
相关文章推荐
- JS中Json数据的处理和解析JSON数据的方法详解
- JS使用JSON格式数据详解
- jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
- 详解通过JSON数据使用VUE.JS
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- JS 循环遍历JSON数据
- Java构造和解析Json数据的两种方法详解二
- springMVC返回json数据乱码问题及@RequestMapping 详解
- ajax请求数据,后台提供数据返回json, 前台js拼html,回填
- JS 处理JSON数据及javascript处理对象、JSON对象、hash对象、数组对象的方法
- html中通过js获取接口JSON格式数据解析以及跨域问题
- Node.js访问SQLite数据库获取数据时出错 JSON对象无法转换
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- Java构造和解析Json数据的两种方法详解一
- 详解Node.Js如何处理post数据
- JS解析JSON数据
- js,jq生成json数据
- 1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
- 4.2 JSONObject 和 GSON 解析 JSON 数据详解