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> 解析

转换成JSONObject对象

String result = .....(就上面那个字符串) JSONObject hashMap = JSONObject.parseObject(result);

得到是一个result为JSONObject的对象,如图1.1

Json数据解析

​ 图1.1

这个JSONOBject内部有一个Map的成员变量

获取key为result,value为JSONObject的对象

JSONObject jsonObjectResult = hashMap.getJSONObject("result");

得到的JSONObjectResult如下图1.2:

Json数据解析

​ 图1.2

查看HashMap为sum的数据类型如图1.3

Json数据解析

​ 图1.3

获取key为sum,value为JSONArray的对象

JSONArray jsonArraySum = jsonObjectResult.getJSONArray("sum");

得到的jsonArraySum如下图1.4

Json数据解析

​ 图1.4

获取第一个JSONArray

JSONArray jsonArraySum0 = jsonArraySum.getJSONArray(0);

得到jsonArraySum0如图1.5

Json数据解析

​ 图1.5

获取第一个JSONObjecy

JSONObject jsonObject0 = jsonArraySum0.getJSONObject(0);

得到jsonObject0如下图1.6

Json数据解析

​ 图1.6

获取key为val,value等于238285

String value = jsonObject0.get("val").toString()

得到value如下图1.7

Json数据解析

​ 图1.7

源代码 String json = ...(上面的Json字符串) String value = JSONObject.parseObject(result) .getJSONObject("result") .getJSONArray("sum") .getJSONArray(0) .getJSONObject(0) .get("val").toString();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfwjj.html