2017-09-25 2 views
1

Ich habe einen JSON-String:Json-Objekt: verknüpfte Liste?

String json = "{\"I\":0,\"lst\":[{\"i1\":100500,\"s1\":\"abrakadabra\", 
         \"aList\":[{\"text\":\"secret will of my Dad\"}]}]}"; 
JSONObject o = new JSONObject(json); 

Meine Frage: wie, Json Obj Methoden, rekursiv durch jedes Knotenelement zu durchsuchen?

+1

https://stackoverflow.com/questions/21354546/recursively-parsing-json-via-jsonobject-to-fetch-value-against-specific-keys Es gibt einen Code am Ende dieses Beitrags. –

+0

Iterator keys = json.sortedKeys(); while (keys.hasNext()) { // Beachten Sie, dass "key" "1", "2", "3" sein muss ... String key = keys.next(); Wert = json.getJSONObject (Schlüssel);

+0

Aufruf Sie diesen Code gemeint? –

Antwort

1

Vitali, ich habe nicht genug rep auf Ihren Kommentar zu antworten, so dass es als Antwort. In diesem Post, den ich verlinkt habe, meinte ich das Code-Snippet mit der Methode loopThroughJson(). Ich habe es selbst nicht versucht, aber das sieht richtig aus. Der Vollständigkeit halber ist dies die Verbindung wieder -

Recursively parsing JSON via JSONObject to fetch value against specific keys

+0

Karthik V Danke! –

+0

Obwohl es hässliche Lösung ist .. jedes Mal gehen Sie durch alle Objekte, um den Wert eines Schlüssels zu finden, so insgesamt (maximal) Anzahl der Aufzählungen ist die Anzahl der Schlüssel Macht 2. deshalb sagte ich über verknüpfte Liste –

+0

Json ist schlechte Lösung –

0

Schleife durch das Objekt, erhalten Kind als Referenz der Object-Klasse mit der get() Methode, wenn dieses Objekt Instanz JSONObject oder JSONArray ist, tiefer gehen.

+0

Cool, danke :) –

+0

Ja, deshalb wollte ich den Code sehen –