2017-05-01 15 views
0

ich Json in javax.json.JsonObject gespeichert haben, wird das Objekt wie folgt aussehen:Java JsonObject von JsonArray

{ 
"status":"ok", 
"meta":{ 
    "count":2 
}, 
"data":{ 
    "1":{ 
     "id":40, 
    }, 
    "17":{ 
     "id":48, 
    } 
} 

}

Wie kann ich die ID-Schlüssel in der Sub-Objekt „zugreifen 1 "?

Ich habe versucht:

obj.getJsonArray("data").getJsonArray("1").getJsonNumber("id").intValue(); 

aber es funktioniert nicht, weil der firt Aufruf von getJsonArray() Methode gibt einen JsonValue keine JsonObject Objekt so schlägt der nächste Aufruf von getJsonArray. Irgendwelche Ideen ?

+0

Warum Sie verwenden 'getJsonArray' wenn alle deine Sachen nicht in Arrays ist? – khelwood

Antwort

0

können Sie einen Iterator Ansatz verwenden, durch die JSONObject iterieren:

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")); 
    } 
} 
0
int id = obj.getJsonObject("data") 
       .getJsonObject("1") 
       .getInt("id"); 
+1

Es sollte mindestens ein Satz geben, der erklärt, welche Frage dieser Code adressiert. –

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); 
Verwandte Themen