java用fastjson解析多层嵌套复杂json字符串
1 []中括号代表的是一个数组;2 {}大括号代表的是一个对象3 双引号“”表示的是属性值4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。Fastjson中的经常调用的方法parseObject(String text);: 把JSON文本parse成JSONObjectparse(String text);: 把JSON文本
·
1 []中括号代表的是一个数组;
2 {}大括号代表的是一个对象
3 双引号“”表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
Fastjson中的经常调用的方法
parseObject(String text);: 把JSON文本parse成JSONObject
parse(String text);: 把JSON文本parse为JSONObject或者JSONArray
key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
value如果是字符串,用jsonobj.getString("key")获取
value如果是数 字,用jsonobj.getIntValue("key"),jsonobj.getFloatValue("key"),jsonobj.getInteger("key")等基本数据类型及其包装类的方法获取
value如果是布尔值,用jsonobj.getBoolean("key"),jsonobj.getBooleanValue("key")获取
value如果是数 组,用jsonobj.getJSONArray("key")获取
value如果是Object对象,用jsonobj.get("key"),获取
value如果是JSONObject对象,用jsonobj.getJSONObject("key")获取
{
"code":"200",
"msg":"ok",
"data":{
"total":1,
"rows":[
{
"text":"xxx",
"sampleBatchDetailDTOList":[
{
"Id":"xxx",
}
]
}
]
"pageIndex":0,
"pageSize":1
}
}
JSON中有一个data对象,data中有一个rows数组,rows中有一个匿名对象,匿名对象中有一个sampleBatchDetailDTOList数组。解析顺序:
//1.将json字符串转化为json对象
JSONObject json = JSONObject.parseObject(result);
//2.取出data部分
JSONArray data = json.getJSONObject("data");
//3.取出data中的数组
JSONArray jsonArray = data.getJSONArray("rows");
//4.遍历
for (Object object : jsonArray) {
//将object强转成JSONObject对象
JSONObject item = (JSONObject) JSON.toJSON(object);
//创建map集合保存属性
Map<String, Object> objectMap = Maps.newHashMapWithExpectedSize(11);
objectMap.put("TEXT", item.get("text"));
//嵌套遍历JSONObject对象item中的数组sampleBatchDetailDTOList
for (Object sampleBatchDetailDTOList : item.getJSONArray("sampleBatchDetailDTOList")) {
//将object强转成JSONObject对象
JSONObject obj = (JSONObject) JSON.toJSON(sampleBatchDetailDTOList);
...
}
...
...
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)