JSONObject和JSONArray的理解与用法
2017-09-19 11:43
686 查看
JSONObject和JSONArray的理解及用法
标签: JSONArrayJSONObject分类:
JSONObject对象,是{key:value}键值对格式。
例如:{"userid":"1001","success":true,''result'':[{"name":"张三"},{"age":"20"}]}
;类似于Map<String,Object>对象,其实json就是一种特殊形式的map。
JSONArray对象,是JSON数组格式,存放的是一个或者多个JSONObject对象;
即json数组是使用中括号[ ],只不过数组里面的项也是json键值对格式的。
例如:
[
{"userid":"1001","success":true,''result'':[{"name":"张三"},{"age":"20"}]},
{"userid":"1001","success":true,''result'':[{"name":"张三"},{"age":"20"}]},
{"userid":"1001","success":true,''result'':[{"name":"张三"},{"age":"20"}]}
]
由JSON数组的格式可发现,类似于List<Map<String,Object>>对象,可以说jsonArray对象就是特殊的listMap对象。
综上所述,可理解为:
JSONObject Json = new JSONObject();
JSONArray JsonArray = new JSONArray();
Json.put("key", "value");//JSONObject对象中添加键值对
JsonArray.add(Json); //将JSONObject对象添加到Json数组中
下面简单的说说其用法:
假设有如下json字符串:
String jsonStr = "[{'content':'查询成功','result':[{'ZS_20':2,'ZS_40':0},{'ZS_20':10,'ZS_40':0}],'success':true},
{'content':'查询失败','result':[],'success':false}]";
该字符串可转化为JSONArray对象,再转化为ListMap对象,当然也可以由JSONArray对象得到JSONObject对象,根据不同个人爱好自行选择。
方法一,先转为JSONArray对象再得到想要的JSONObject对象
JSONArray jsonArray = JSONArray.fromObject(jsonStr );
//获取第一个jsonObject对象,即
//{'content':'查询成功','result':[{'ZS_20':2,'ZS_40':0},{'ZS_20':10,'ZS_40':0}],'success':true}
JSONObject object = jsonArray.getJSONObject(0);
//由jsonObject对象直接取值
String content = object.get("content").toString();
System.out.println(content);
List<Map<String, Object>> list = (List<Map<String, Object>>) object.get("result");
for (Map<String, Object> map : list) {
System.out.println(map);
}
/*打印结果:
查询成功
{"ZS_20":2,"ZS_40":0}
{"ZS_20":10,"ZS_40":0}
*/
方法二:
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
List<Map<String, Object>> list = (List)jsonArray;
Map<String, Object> map = list.get(1);
String content = map.get("content").toString();
System.out.println(content);
List<Map<String, Object>> list2 = (List<Map<String, Object>>) map.get("result");
System.out.println(list2);
for (Map<String, Object> map2 : list2) {
System.out.println(map2);
}
/*打印结果:
查询失败
[]
*/
此场景只针对本人在开发中遇到问题,本人在此做个总结。
至于还有其它用法,在这里并不一一介绍,请查阅其它资料。
相关文章推荐
- JSONObject和JSONArray的理解及用法
- JSONObject和JSONArray区别及基本用法
- JAVA基础——JSONObject,JSONArray 的一些常见用法
- JSONObject与JSONArray用法和区别
- 详解JSONObject和JSONArray区别及基本用法
- Java json基本用法(org.json.JSONObject/org.json.JSONArray)
- JSONObject和JSONArray总结,个人理解
- JSONObject和JSONArray区别及基本用法
- JSONObject和JSONArray区别及基本用法
- JSONObject/JSONArray用法
- JSON全面总结(3)之JSONObject和JSONArray区别及基本用法
- JSONObject和JSONArray的区别及基本用法
- 在struts2 中 JSONArray.fromObject转化字符串的一个特殊用法,直接返回值
- JSONArray中获取JSONObject中JSONArray
- [转]JSONObject与JSONArray的使用 .
- 解决嵌套list类型的JSONObject/JSONArray转换成原来list问题。
- 关于 java JSONArray JSONObject转换问题
- JSONObject和JSONArray
- JSONObject与JSONArray的使用
- [转]JSONObject,JSONArray使用手册