Json數據解析


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>

解析

  1. 轉換成JSONObject對象
String result = .....(就上面那個字符串)
JSONObject hashMap = JSONObject.parseObject(result);

得到是一個result為JSONObject的對象,如圖1.1

​ 圖1.1

這個JSONOBject內部有一個Map的成員變量

  1. 獲取key為result,value為JSONObject的對象
JSONObject jsonObjectResult = hashMap.getJSONObject("result");

得到的JSONObjectResult如下圖1.2:

​ 圖1.2

查看HashMap為sum的數據類型如圖1.3

​ 圖1.3

  1. 獲取key為sum,value為JSONArray的對象
JSONArray jsonArraySum = jsonObjectResult.getJSONArray("sum");

得到的jsonArraySum如下圖1.4

​ 圖1.4

  1. 獲取第一個JSONArray
JSONArray jsonArraySum0 = jsonArraySum.getJSONArray(0);

得到jsonArraySum0如圖1.5

​ 圖1.5

  1. 獲取第一個JSONObjecy
JSONObject jsonObject0 = jsonArraySum0.getJSONObject(0);

得到jsonObject0如下圖1.6

​ 圖1.6

  1. 獲取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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM