Json數據解析
阿新 • • 發佈:2018-10-16
變量 http shm alt cti 獲取json 添加 內部 val
Json數據解析
場景模擬
假如現在根據一個接口得到了一串Json字符串,我們要獲取Json字符串中某一個數字,Json字符串如下
{ "result": { "offset": 0, "timeSpan": [ "2018/10/16", "2018/10/15" ], "fields": [ "app_name", "time", "user_count" ], "total": 11, "end": 0, "sum": [ [ { "val": 238285, "flag": -1 } ], [ 796749 ] ], "pageSum": [] } }
現在要獲取 sum中val 對應的238285 這個值
準備
使用fastJson 阿裏的
添加maven依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.9</version>
</dependency>
解析
- 轉換成JSONObject對象
String result = .....(就上面那個字符串) JSONObject hashMap = JSONObject.parseObject(result);
得到是一個result為JSONObject的對象,如圖1.1
? 圖1.1
這個JSONOBject內部有一個Map的成員變量
- 獲取key為result,value為JSONObject的對象
JSONObject jsonObjectResult = hashMap.getJSONObject("result");
得到的JSONObjectResult如下圖1.2:
? 圖1.2
查看HashMap為sum的數據類型如圖1.3
? 圖1.3
- 獲取key為sum,value為JSONArray的對象
JSONArray jsonArraySum = jsonObjectResult.getJSONArray("sum");
得到的jsonArraySum如下圖1.4
? 圖1.4
- 獲取第一個JSONArray
JSONArray jsonArraySum0 = jsonArraySum.getJSONArray(0);
得到jsonArraySum0如圖1.5
? 圖1.5
- 獲取第一個JSONObjecy
JSONObject jsonObject0 = jsonArraySum0.getJSONObject(0);
得到jsonObject0如下圖1.6
? 圖1.6
- 獲取key為val,value等於238285
String value = jsonObject0.get("val").toString()
得到value如下圖1.7
? 圖1.7
源代碼
String json = ...(上面的Json字符串)
String value = JSONObject.parseObject(result)
.getJSONObject("result")
.getJSONArray("sum")
.getJSONArray(0)
.getJSONObject(0)
.get("val").toString();
Json數據解析