解析一个含有json对象、数组格式的数据

要解析的json数据:

{
	"message": "成功",
	"result": "00",
	"queryid": "0abcaa21-b9aa-4ef6-bcd7-708b9296acdd",
	"data": {
		"detail": [{
			"num": "123",
			"time": "2019-02-23",
			"type": "2"
		}],
		"openid": "oE72L5bO4pwml6n1e87KZbPAcCD0"
	}
}

看似简单(数据量少),其实也不简单(结构略复杂,包含了json对象与json数组)。
在这里插入图片描述
如:上图中红框中的数据格式就是json对象,而其中蓝框中的数据格式又是json数组。

现在将其中所有json信息解析出来,具体参考下方代码:

package com.sweetstreet.server.api;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.List;

public class test {

    public static void main(String[] args) {
        String s="{\n" +
                "\t\"message\": \"成功\",\n" +
                "\t\"result\": \"00\",\n" +
                "\t\"queryid\": \"0abcaa21-b9aa-4ef6-bcd7-708b9296acdd\",\n" +
                "\t\"data\": {\n" +
                "\t\t\"detail\": [{\n" +
                "\t\t\t\"num\": \"123\",\n" +
                "\t\t\t\"time\": \"2019-02-23\",\n" +
                "\t\t\t\"type\": \"2\"\n" +
                "\t\t}],\n" +
                "\t\t\"openid\": \"oE72L5bO4pwml6n1e87KZbPAcCD0\"\n" +
                "\t}\n" +
                "}";
        String data = JSON.parseObject(s).getString("data");
//        1 返回json
        JSONArray list1 = (JSONArray) JSON.parseObject(data).get("detail");
        System.out.println(list1);
//        2 返回可直接操作List对象
        List<Test1> list2 = JSON.parseArray(JSON.parseObject(data).getString("detail"), Test1.class);
        System.out.println(list2);
//        3 返回json
        List list3 = JSON.parseObject(data).getObject("detail", List.class);
        System.out.println(list3);
        for (Object re : list3) {
            JSONObject jsonObject = JSON.parseObject(String.valueOf(re));
            String num = jsonObject.getString("num");
            String time = jsonObject.getString("time");
            String type = jsonObject.getString("type");
            System.out.println("num : "+num);
            System.out.println("time : "+time);
            System.out.println("type : "+type);
        }
    }
}

输出结果:
在这里插入图片描述
注意以上导包都是com.alibaba.fastjson.json,不要搞错了。

获取指定格式数据后,getString()获取指定key对应的value值即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值