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);
   	...
 }
 ...
...
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐