我在JSONObject中有这个json结构:
{
"images":
{
"-KEHe39xfHoRmK9gPxpv":
{
"image": "",
"imei": "000000000000000",
"latitude": "",
"longitude": ""
},
"-KEHe5BOpHz6WlKF_F5B":
{
"image": "",
"imei": "000000000000000",
"latitude": "",
"longitude": ""
},
"-KEHe73aFp59v5Y_mX0Z":
{
"image": "",
"imei": "000000000000000",
"latitude": "",
"longitude": ""
}
}
}
如您所见,键是唯一的。 我知道当我做的时候
jsonArray = jsonObject.getJSONArray("images");
...我可以获取相应密钥的值。
我的问题是我不知道钥匙。所以我无法将它们放入.getJSONArray()中以获取我的值。
我试图获取数组的数组
jsonArray = jsonObject.getJSONArray("images").getJSONArray(x); // x == 0 , 1 , 2 , 3
String test = jsonArray.toString();
textView.setText(test);
给我这个输出
04-03 20:41:16.073 9080-9080/com.example.app W/System.err: org.json.JSONException: Value {"-KEHe8nN5iFyGCIXiuv-":{"image":"DATA","longitude":"DATA","latitude":"DATA","imei":"000000000000000"},"-KEHe5BOpHz6WlKF_F5B":{"image":"DATA","longitude":"DATA","latitude":"DATA","imei":"000000000000000"},"-KEHe39xfHoRmK9gPxpv":{"image":"DATA"
04-03 20:41:16.073 9080-9080/com.example.app W/System.err: at org.json.JSON.typeMismatch(JSON.java:100)
04-03 20:41:16.077 9080-9080/com.example.app W/System.err: at org.json.JSONObject.getJSONArray(JSONObject.java:548)
*我替换了输出中的实际数据......
答案 0 :(得分:0)
images
元素不是数组。这是一个对象。你可以这样得到它:
JSONObject images = jsonObject.getJSONObject("images");
然后你可以像这样迭代它的唯一键来获取与每个键相关联的对象:
for (String key : images.keys()) {
JSONObject image : images.getJSONObject(key);
}
答案 1 :(得分:0)
是的,如果是JSONArray,它会有方括号。您提供的示例是JSONObject树。