我要解析这个 JSON
{"files_informations": {
"row":{"value":"artist1"},
"row":{"value":"artist2"}
}
}
我想知道如何获得第一个值 artist1 和第二个值 artist2
这就是我正在做的:
JSONObject myObject = jObject.getJSONObject("files_informations");
JSONObject rowObject = myObject.getJSONObject("row");
Iterator<JSONObject> rowIt = rowObject.keys();
while (rowIt.hasNext()) {
JSONObject tmp = rowIt.next();
Log.e("", tmp.getString("value"));
}
我得到了这个 JSONObject tmp = rowIt.next();
所以我有两个问题:
- 我需要在这里使用迭代器吗 案例?
- 应该如何使用它们?
编辑:
JSON 应该是这样的吗?
{"files_informations": [
"row":{"value":"artist2"},
"row":{"value":"artist1"}
]
}
最佳答案
rowIt.next()
在这种情况下是“行”String
。
将您的 JSON 重构为:
{"files_informations":
[ {"value":"artist2"},
{"value":"artist1"} ] }
甚至这样:
{ "files_informations": [ "artist2", "artist1" ] }
然后使用:
JSONArray artistsArr = myObject.getJSONArray("files_informations");
for (int i = 0; i < artistsArr.size(); i++) {
// first case
Log.d(TAG, artistsArr.get(i).getString("value"));
// Second case
Log.d(TAG, artistsArr.getString(i));
}
JSONArray 不支持迭代器,但是如果您确实需要,可以将它们转换为纯 Java 数组/列表。
关于java - 解析 JSON,不确定如何以及何时使用迭代器(Android 平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896326/