Json数据解析

Posted krloypower

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

以上是关于Json数据解析的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序json数据如何处理?

使用 json rereiver php mysql 在片段中填充列表视图

实用代码片段将json数据绑定到html元素 (转)

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

NodeJs GraphQL 片段解析器

如何在 Ios 中解析数组数据中的嵌套 Json 对象