我有以下json字符串,
"objects": [{
"d430f6c0-a293-4fb9-86fe-a163618cf180": {
"id": "d430f6c0-a293-4fb9-86fe-a163618cf180",
"in_use": 0,
"alterable": 1,
"comment": ""
},
"123-a293-4fb9-86fe-a163618cf180": {
"id": "123-a293-4fb9-86fe-a163618cf180",
"in_use": 2,
"alterable": 3,
"comment": "dfgfg"
}
}]
并且无法找到解析它的方法,数组中的所有对象都具有前面的id,如上所示。 感谢您的帮助。
答案 0 :(得分:0)
首先你的json数组格式错误,可以查看jsonviewer 你的json数据将是这样的:
{"objects": [{
"d430f6c0-a293-4fb9-86fe-a163618cf180": {
"id": "d430f6c0-a293-4fb9-86fe-a163618cf180",
"in_use": 0,
"alterable": 1,
"comment": ""
},
"123-a293-4fb9-86fe-a163618cf180": {
"id": "123-a293-4fb9-86fe-a163618cf180",
"in_use": 2,
"alterable": 3,
"comment": "dfgfg"
}
}]}
现在要解析这些数据,你可以使用这个方法:
public void parseData(String jsonObjectData) {
try {
JSONObject jsonObject = new JSONObject(jsonObjectData);
JSONArray jsonArray = jsonObject.getJSONArray("objects");
for (int i = 0 ; i <jsonArray.length(); i ++)
{
String id = jsonArray.getJSONObject(i).getJSONObject("d430f6c0-a293-4fb9-86fe-a163618cf180").getString("id");
Log.d("id", id);
}
} catch (Exception e) {
}
}
你必须得到这样的json对象String id = jsonArray.getJSONObject(i).getJSONObject("d430f6c0-a293-4fb9-86fe-a163618cf180").getString("id");
它将提供单个对象数据,您无法获取所有数据,因为您的json格式不正确。