我将json存储在javax.json.JsonObject中,对象看起来像这样:
{
"status":"ok",
"meta":{
"count":2
},
"data":{
"1":{
"id":40,
},
"17":{
"id":48,
}
}
}
如何访问子对象“1”中的id键?
我试过了:
obj.getJsonArray("data").getJsonArray("1").getJsonNumber("id").intValue();
然而它不起作用,因为getJsonArray()方法的firt调用返回一个JsonValue对象而不是JsonObject,因此下一次调用getJsonArray失败。有什么想法吗?
答案 0 :(得分:0)
您可以使用迭代器方法通过JSONObject进行迭代:
JSONObject json = new JSONObject(input);
JSONObject jsonData = json.getJSONObject("data");
Iterator<?> jsonDataKeys = jsonData.keys();
while (jsonDataKeys.hasNext()) {
String key = (String)jsonDataKeys.next();
if (jsonData.get(key) instanceof JSONObject) {
System.out.println(((JSONObject) jsonData.get(key)).getInt("id"));
}
}
答案 1 :(得分:0)
int id = obj.getJsonObject("data")
.getJsonObject("1")
.getInt("id");
答案 2 :(得分:0)
JSONObject jObject = null;
jObject = new JSONObject(String you want to parse);
JSONObject j1Object = jObject.getJSONObject("data");
JSONObject j2Object = j1Object.getJSONObject("1");
String s1=j2Object.getString("id");
System.out.println(s1);