zoukankan      html  css  js  c++  java
  • 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();
    
  • 相关阅读:
    转载viewstate(一) 太经典的东西 不得不转载保存下来
    Asp.Net中HttpModule的研究(转)
    linux学习笔记(9)
    老手经验谈:Linux驱动程序开发学习步骤(转)
    浅谈C中的malloc和free(1)
    ASP.NET的HttpModule和HttpHandler(转)
    C语言学习笔记(1)
    xcode 4 code sense
    不是bug 是教训
    win7 管理员 开关命令
  • 原文地址:https://www.cnblogs.com/Krloypower/p/9796889.html
Copyright © 2011-2022 走看看