【发布时间】:2013-11-10 07:02:51
【问题描述】:
我的 Json 是:
{
"Response": {
"Asset": [
{
"id": 2461,
"name": "TestAsset7771",
"model_name": "TestModel777",
"serial_number": "TestAsset7771",
"current_data": {
"timestamp": "",
"name": "Temperature",
"value": "?"
}
},
{
"id": 2448,
"model_id": 1229,
"name": "TestAsset777",
"model_name": "TestModel777",
"serial_number": "TestAsset777",
"current_data": {
"timestamp": "",
"name": "Temperature",
"value": "?"
}
}
]
}
}
我的代码是:
JSONObject outerObject = new JSONObject(jsonObj.toString());
JSONObject innerObject = outerObject.getJSONObject("Response");
JSONArray jsonArray = innerObject.getJSONArray("Asset");
for (int i = 0, size = jsonArray.length(); i < size; i++)
{
JSONObject objectInArray = jsonArray.getJSONObject(i);
String[] elementNames = JSONObject.getNames(objectInArray)
for (String elementName : elementNames)
{
String value = objectInArray.getString(elementName);
System.out.printf("name=%s, value=%s\n", elementName, value);
}
}
对于内部数组 - 即当前数据,获取值如下:
名称=当前数据, value={"timestamp":"","name":"Temperature","value":"?"}
如何放置另一个内部数组,以便我可以获取 “时间戳”:“”,“名称”:“温度”,“值”:“?”在单独的变量中而不是完整的 JSON 中
【问题讨论】:
-
呃,“价值”是一张地图。从地图中提取条目。
-
值又是json..
-
如果上面的 JSON 列表是准确的,并且您使用了普通的 JSON 解析器,“current_data”的值将是一个 Map。对于特定的 JSON 解析器,您使用 Map 的形式将是 JSONObject。像访问任何其他地图一样访问元素。