Java 解析JSON,不确定如何以及何时使用迭代器(Android平台)
我需要解析这个JSONJava 解析JSON,不确定如何以及何时使用迭代器(Android平台),java,android,json,parsing,java-me,Java,Android,Json,Parsing,Java Me,我需要解析这个JSON {"files_informations": { "row":{"value":"artist1"}, "row":{"value":"artist2"} } } 我想知道如何获取第一个值artist1,然后获取第二个值artist2 这就是我正在做的: JSONObject myObject = jObject.getJSO
{"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"));
}
rowIt.next()
在本例中是“row”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 artistsArr=myObject.getJSONArray(“文件信息”);
对于(int i=0;i
JSONArray中不支持迭代器,但是如果确实需要,您可以将迭代器转换为普通Java数组/列表。您的JSON可能有一个问题:您的files\u information键有两个键为“row”的值,第二个值在解析时实际上会覆盖第一个值。您应该使用数组来存储文件和信息。谢谢您的评论。我编辑了我的帖子。你认为JSON应该和我发布的一样吗?你编辑的版本不是有效的JSON。
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));
}