Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析JSON,不确定如何以及何时使用迭代器(Android平台)_Java_Android_Json_Parsing_Java Me - Fatal编程技术网

Java 解析JSON,不确定如何以及何时使用迭代器(Android平台)

Java 解析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

我需要解析这个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"));
}
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));
}