SpringBoot Fastjson解析多层嵌套复杂Json字符串
Posted BasicLab基础架构实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot Fastjson解析多层嵌套复杂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);
...
...
...
以上是关于SpringBoot Fastjson解析多层嵌套复杂Json字符串的主要内容,如果未能解决你的问题,请参考以下文章