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();
    
  • 相关阅读:
    ES elasticsearch 段合并
    xtrabackup VS clone plugin
    MySQL排序揭秘
    PostgreSQL体系结构和基本操作
    ES elasticsearch refresh和flush的区别
    MySQLMGR(一)
    redis一键创建脚本
    vs2010 安装无法打开deffactory.dat解决办法
    FeatureLayer,FeatureDataset,FeatureClass,Feature几个概念总结
    http://www.cnblogs.com/secenes/archive/2008/05/15/1198933.html
  • 原文地址:https://www.cnblogs.com/Krloypower/p/9796889.html
Copyright © 2011-2022 走看看