JSON是一种轻量级的数据交换格式,支持的类型有字符串、数字、对象、数组等。
花括号({})保存对象,方括号([])保存数组。
使用jar包,https://mvnrepository.com/artifact/com.alibaba/fastjson
json解析大概分为两种
1、创建实体类解析
2、json字符串转换为json数组解析
{
“data”: {
“label_type”: 0,
“list”: [
{
“bill_id”: “2114253005”,
“cmt_id”: 432367799,
“cmt_type”: 0,
“consume”: 1,
“content”: “环境好,服务态度好,炎热的夏日,舒适的一杯咖啡。\n有机会会经常来。”,
“content_length”: 33,
“create_time”: “2017-07-22 01:48:41”,
“first”: 0
},
{
“bill_id”: “2107749428”,
“cmt_id”: 432048492,
“cmt_type”: 0,
“consume”: 1,
“content”: “团购划算,希望团购继续。咖啡不错,就是音乐声音大了点。”,
“content_length”: 27,
“create_time”: “2017-07-12 03:45:23”,
“first”: 0,
“uid”: 4081481619,
“update_time”: “2017-07-12 03:45:23”
}
],
“logInfoExt”: [],
“login_id”: “”,
“pageNum”: 4,
“sampleHit”: 0,
“total”: 39
},
“errno”: 0,
“msg”: “success”,
“totalPage”: 39
}
1、最外面是一个JSONObject,因为是花括号,所以先解析为JSONObject
JSONObject jsonObj = JSON.parseObject(text);
2、获取data的值
String dataStr= jsonObj.getString(“data”);
data是JSONObject类型,里面包含的子元素有abel_type、list、logInfoExt、login_id、pageNum、sampleHit、total元素,这里只解析list。
3、因为list在data中,又因为data是JSONObject类型,先将data转换为JSONObject类型,再获取list元素
JSONObject jsonObject = JSON.parseObject(dataStr);
JSONArray arr = jsonObject.getJSONArray(“list”);
4、可以看到 list中包含两个子元素
for (int i = 0; i < arr.size(); i++) {
获取第一个子元素
String listStr= arr.getString(i);
再将该元素转换为JSONObject
JSONObject firstObj = JSON.parseObject(listStr);
获取JSONObject中值
String s = firstObj.get(“bill_id”).toString();
}
最终的代码:
JSONObject jsonObj = JSON.parseObject(text);
System.out.println(jsonObj);
String dataStr = jsonObj.getString(“data”);
JSONObject jsonObject = JSON.parseObject(dataStr);
JSONArray arr = jsonObject.getJSONArray(“list”);
for (int i = 0; i < arr.size(); i++) {
String listStr= arr.getString(i);
JSONObject firstObj = JSON.parseObject(listStr);
String s = firstObj.get(“bill_id”).toString();
}
JSON解析
最新推荐文章于 2024-08-30 14:13:47 发布