我有这个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"}
]
}
答案 0 :(得分:2)
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));
}
JSONArrays不支持迭代器,但如果确实需要,可以将它们转换为普通的Java数组/列表。