您好,我正在尝试从另一个 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/