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字符串的主要内容,如果未能解决你的问题,请参考以下文章

springboot处理fastjson的多层嵌套

反序列化多层嵌套json实体

从fastjson多层泛型嵌套解析,看jdk泛型推断

SQL:LATERAL VIEW函数解析多嵌套的json

logstash解析嵌套json的问题

java中mongodb嵌套json查询?