码迷,mamicode.com
首页 > Web开发 > 详细

Json数据解析

时间:2018-10-16 11:55:44      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:有一个   map   artifact   技术   sonar   seo   1.7   个数   user   

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();

Json数据解析

标签:有一个   map   artifact   技术   sonar   seo   1.7   个数   user   

原文地址:https://www.cnblogs.com/Krloypower/p/9796889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!