java - 在另一个 JSON 数组中解码 JSON 数组中的信息

标签 java arrays json

您好,我正在尝试从另一个 Json 数组中的 Json 数组获取数据。我正在尝试解析它,但是我无法做到。这是我的 JSON 数据。

{
"aggregate": "volume",
"dimension1": "queries",
"dimension2": "days",
"results": [
    {
        "id": 1998364102,
        "name": "Denso",
        "data": {},
        "values": [
            {
                "id": "2015-05-23T00:00:00.000+0000",
                "name": "2015-05-23 00:00:00.0",
                "value": 5,
                "data": {}
            },
            {
                "id": "2015-05-25T00:00:00.000+0000",
                "name": "2015-05-25 00:00:00.0",
                "value": 3,
                "data": {}
            },
            {
                "id": "2015-05-21T00:00:00.000+0000",
                "name": "2015-05-21 00:00:00.0",
                "value": 9,
                "data": {}
            },
            {
                "id": "2015-05-22T00:00:00.000+0000",
                "name": "2015-05-22 00:00:00.0",
                "value": 0,
                "data": {}
            },
            {
                "id": "2015-05-19T00:00:00.000+0000",
                "name": "2015-05-19 00:00:00.0",
                "value": 7,
                "data": {}
            },
            {
                "id": "2015-05-24T00:00:00.000+0000",
                "name": "2015-05-24 00:00:00.0",
                "value": 8,
                "data": {}
            },
            {
                "id": "2015-05-20T00:00:00.000+0000",
                "name": "2015-05-20 00:00:00.0",
                "value": 15,
                "data": {}
            },
            {
                "id": "2015-05-26T00:00:00.000+0000",
                "name": "2015-05-26 00:00:00.0",
                "value": 11,
                "data": {}
            }
        ]
    }
]
}

如何从“values”数组中获取数据?我需要从那里获取值和名称。我的JAVA代码:

if (jsonObject.has("results")) {
    JSONArray jArray = jsonObject.getJSONArray("results");

    for (int i = 0; i < jArray.length(); i++) {
        JSONArray valueArray = new JSONArray(jArray.getJSONObject(i).getJSONArray("values"));

        for (int j = 0; j < valueArray.length(); j++) {
            JSONObject name = valueArray.getJSONObject(j);
            System.out.println(j+"Value:"+name.getInt("value"));
        }
    }
}

最佳答案

if (jsonObject.has("results")) {
            JSONArray jArray = jsonObject.getJSONArray("results");
            while(jArray.iterator().hasNext()){
                JSONObject valueArrayObject = ((JSONObject)jArray.iterator().next());
                if(valueArrayObject.containsKey("values")){
                    JSONArray valueObject = (JSONArray)valueArrayObject.get("values");
                    while(valueObject.iterator().hasNext()){
                        JSONObject valueObj = (JSONObject)valueObject.iterator().next();
                        System.out.println(valueObj.get("id"));

                    }
                }
            }
        }

迭代结果数组以获取值数组。您必须为任何解析器错误添加异常处理。

关于java - 在另一个 JSON 数组中解码 JSON 数组中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763042/

相关文章:

java - dollar dollar=(美元) object ;这是做什么的?

ruby - 如何将 'gets' 输入放入数组?

java - REST Jersey 客户端 - 无法将 JSON 解析为 POJO 类

javascript - 使用 javascript 循环 JSON

java - 使用 GET REST 调用提取以 json 格式返回的不同值

java - 通过网络共享项目时出现不可读的 POM(系统找不到指定的路径)错误

java - 为什么在从文件重定向输入时出现异常,但 Java 程序的手动输入却没有?

java - 创建实体时添加静态属性数据

javascript - Eloquent JavaScript。抽象数组遍历。第二版。第 83 页

javascript - 循环遍历分割数组并使用wrapInner输出