2014-06-23 6 views
19

Ich versuche, über ein JSON-Objekt mit JSON Simple zu iterieren. Ich habe Antworten gesehen, wo Sie eine getJSONObject tun können („Kind“) vonIterate durch JSONObject von Root in JSON einfach

{ "child": { "something": "value", "something2": "value" } } 

aber was, wenn ich nur etwas

{ 
"k1":"v1", 
"k2":"v2", 
"k3":"v3" 
} 

und wollen über dieses JSON-Objekt iterieren. Dies:

Iterator iter = jObj.keys(); 

wirft: Methode keys() Standort: Klasse org.json.simple.JSONObject

Antwort

31

Angenommen, Ihr JSON-Objekt gespeichert wird in einer Datei „simple.json nicht Symbol Symbol finden “können Sie über den Attribut-Wert-Paare durchlaufen wie folgt:

JSONParser parser = new JSONParser(); 

Object obj = parser.parse(new FileReader("simple.json")); 

JSONObject jsonObject = (JSONObject) obj; 

for(Iterator iterator = jsonObject.keySet().iterator(); iterator.hasNext();) { 
    String key = (String) iterator.next(); 
    System.out.println(jsonObject.get(key)); 
} 
+0

Danke das Problem gelöst! Ich bin mir nicht sicher, warum ich für die Frage abgelehnt wurde. – PixMach

+0

Ich verbrachte die meiste Zeit damit, eine Lösung für den dynamischen Zugriff auf Json-Objekte zu finden. Danke für das Setzen! – canadiancreed

+2

Ich habe den Fehler kann '.keyset()' – hadi

4

Sie mögen dieses

tun können