知识储备:JSON数据解析
2015-07-20 19:06
741 查看
Json数据概念介绍
概念:Json(JavaScript Object Notation):JavaScript对象表示法,是一种轻量级的数据交换格式。可以将json数据简单理解成有特定格式的字符串数据。Json数据交互呢指的就是这种特定格式字符串数据的传递。
与XML数据的比较:
1) 扩展性方面:XML数据的扩展性更好,通用性比较强
2) 数据传输方面:Json传输的数据量小,传输的速度快
3) 数据交互方面:Json数据的交互更加方便,解析过程更简单
4) 数据描述方面:XML对数据的描述性更强
Json的两种数据结构
1、Json对象:键值对的集合,
2、Json数组:值得有序列表(value可以使字符串、数字)
Json数据的构造
json数据解析常用的类:JSON、JSONObject、JSONArray
JSONObject提供了相应的API接口将XML数据、javabean数据、ArrayList数据、HashMap数据构造成相应的json数据。
Json数据的解析
可以通过JSONObject、JSONArray获得json数据对应的json对象或者数组,之后再将它们解析成对应的javabean啊、ArrayList啊,、HashMap形式的数据
1) 例如,对简单json数据的解析
2) 对含有json数组的json数据解析
概念:Json(JavaScript Object Notation):JavaScript对象表示法,是一种轻量级的数据交换格式。可以将json数据简单理解成有特定格式的字符串数据。Json数据交互呢指的就是这种特定格式字符串数据的传递。
与XML数据的比较:
1) 扩展性方面:XML数据的扩展性更好,通用性比较强
2) 数据传输方面:Json传输的数据量小,传输的速度快
3) 数据交互方面:Json数据的交互更加方便,解析过程更简单
4) 数据描述方面:XML对数据的描述性更强
Json的两种数据结构
1、Json对象:键值对的集合,
{ “name”:“jack”, “age”:20 }
2、Json数组:值得有序列表(value可以使字符串、数字)
[ {"name" : "jack1","age" : "30"},{"name" : "jack2","age" : 30} ]
Json数据的构造
json数据解析常用的类:JSON、JSONObject、JSONArray
/** *@pram key json对象的标识 *@pram value xml、javabean、ArrayList、Map对应的json数据 */ public static String createJSONString(String key, Object value) { JSONObject jsonObject = new JSONObject(); jsonObject.put(key, value); return jsonObject.toString(); }
JSONObject提供了相应的API接口将XML数据、javabean数据、ArrayList数据、HashMap数据构造成相应的json数据。
Json数据的解析
可以通过JSONObject、JSONArray获得json数据对应的json对象或者数组,之后再将它们解析成对应的javabean啊、ArrayList啊,、HashMap形式的数据
1) 例如,对简单json数据的解析
{ "person": {"address":"beijing","id":1001,"name":"jack"} }
Person person= new Person(); JSONObject jsonObject = new JSONObject(jsonString);//获得该json数据对应的json对象 JSONObject personObject = jsonObjec.getJSONObject("person");//获取{"address":"beijing","id":1001,"name":"jack"}该json对象 person.setId(personObject.getInt("id")); //根据key值获取相应的数据
2) 对含有json数组的json数据解析
{ "persons" : [ {"address":"beijing","id":1000,"name":"jack"}, {"address1":"jiangxi","id1":1001,"name1":"jack1"}, {"address2":"hebei","id2":1002,"name2":"jack2"} ] }
List<Person> list = new ArrayList<Perosn>(); JSONObject jsonObjet = new JSONObject(jsonString); //获得json素组对象 JSONOArray = jsonObject.getJSONArray("persons"); //遍历json数组对象 for(int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject2 = jsonArray.getJSONObject(i); person.setId(personObject.getInt("id")); list.add(person); }
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); JSONObject jsonObjet = new JSONObject(jsonString); JSONOArray = jsonObject.getJSONArray("persons"); for(int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject2 = jsonArray.getJSONObject(i); Map<String,Object> map = new HashMap<String,Object>();O for(Iterator<String> iter = jsonObject2.keys(); iter.hasNext();) { String jsonKey = iter.next(); Objcet jsonValue = jsonObject.get(jsonKey) map.put(jsonKey,jsonValue); } list.add(map); }
相关文章推荐
- web技术发展史
- JavaScript权威指南_131_第15章_脚本化文档_15.6-创建、 插入、删除节点-DocumentFragment
- js去除空格12种方法
- js 跨域问题
- 图解Javascript原型链
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- json时间转化问题
- js常用函数
- js打印数组查看
- 在jsp界面实现对表单用户名、密码不能为空的验证代码
- [BZOJ1013][JSOI2008]球形空间产生器sphere
- json在线编辑器
- 重写一下js的alert函數
- 欢迎使用CSDN-markdown编辑器
- EasyUI+Javascript+MVC 实现三级级联(一)
- 解决filter登录验证死循环问题
- LABJS源码浅析
- js的继承
- JavaScript日期对象使用总结
- JSON 数据的 JSONKit 解析