云栖问答

找不到答案?去提问题

java Json 2016-03-20 18:50:34

Java如何解析嵌套json数据

准备做一个快递查询的app练习,下面的json如何解析?

 {
    "id": "zhongtong",
    "name": "中通快递",
    "order": "371466099000",
    "message": "",
    "errcode": "0000",
    "status": 4,
    "data": [
        {
            "time": "2015-11-23 16:57:06",
            "content": "南汇二部 的 三计项目 已收件 "
        },
        {
            "time": "2015-11-23 19:33:57",
            "content": "快件离开 南汇二部 已发往 上海浦东中心"
        },
        {
            "time": "2015-11-23 23:01:46",
            "content": "快件已经到达 上海浦东中心 上一站是 南汇二部"
        },
        {
            "time": "2015-11-23 23:02:36",
            "content": "快件离开 上海浦东中心 已发往 南京中转部"
        },
    ]
}

2个回答

0

蛮大人123

public static void main(String[] args) {
    String s = "{\"id\": \"zhongtong\",\"name\": \"中通快递\",\"order\": \"371466099000\",\"message\": \"\",\"errcode\": \"0000\",\"status\": 4,\"data\": " +
            "[{\"time\": \"2015-11-23 16:57:06\",\"content\": \"南汇二部 的 三计项目 已收件 \"}," +
            "{\"time\": \"2015-11-23 19:33:57\",\"content\": \"快件离开 南汇二部 已发往 上海浦东中心\"},{\"time\": \"2015-11-23 23:01:46\",\"content\": \"快件已经到达 上海浦东中心 上一站是 南汇二部\"}," +
            "{\"time\": \"2015-11-23 23:02:36\",\"content\": \"快件离开 上海浦东中心 已发往 南京中转部\"}]}";

    JSONObject json = JSONObject.fromObject(s);
    String id = json.getString("id");
    System.out.println(id);
    System.out.println("===================================");
    JSONArray jsonArray = json.getJSONArray("data");
    for(int i=0; i<jsonArray.size(); i++){
        JSONObject jsonObject = (JSONObject) jsonArray.get(i);
        String time = jsonObject.getString("time");
        String content = jsonObject.getString("content");
        System.out.print("time: " + time);
        System.out.print("   ");
        System.out.println("content: " + content);
    }
}

0

老萧

可以使用json工具类,如fastjson 或者 gjson

1
GO