知识储备:JSON数据解析
来源:互联网 发布:linux文件列表 编辑:程序博客网 时间:2024/05/29 16:00
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);}
0 0
- 知识储备:JSON数据解析
- 利用Gson解析Json数据的一些知识储备
- 知识储备:XML数据解析
- 知识储备
- 知识储备
- 【量亿数据】量化交易入门需储备哪些知识
- 开发android客户端需要了解的知识--JSON数据解析
- 开发android客户端需要了解的知识--JSON数据解析
- JSON 解析相关 知识
- 知识储备:Java面试知识储备
- 知识储备1
- 邮箱产品知识储备
- 系统集成工程师--知识储备
- 驱动安装知识储备
- ORACLE ASM知识储备
- 多线程编程知识储备
- 短信储备知识
- 计算机网络知识储备总结
- S3C2410的触摸屏控制
- OC多态使用注意
- UVa 10189 SDNU 1127 Minesweeper 【7月20】
- HDU 5285:wyh2000 and pupil
- 2015年ALPC暑期专题练习I (计算几何) Space Ant
- 知识储备:JSON数据解析
- Swift学习笔记系列——(10)方法
- 235 Lowest Common Ancestor of a Binary Search Tree
- 【舶来】 Cydia Substrate框架官网对 '与Xposed对比' 的说明
- java处理高并发高负载类网站的优化方法
- 6.1-键盘之综合示例
- ListView的OnItemClickListener失效的解决办法
- 数据库字符集引发的血案
- 12天学好C语言——记录我的C语言学习之路(Day 4)