Foreach mit JSONArray und JSONObject
Ich bin mit org.json.simple.JSONArray
und org.json.simple.JSONObject
. Ich weiß, dass diese beiden Klassen JSONArray
und JSONObject
sind nicht kompatibel, aber ich möchte immer noch zu tun, eine ganz Natürliche Sache - ich will für jede über JSONArray
parsing bei jedem Iterationsschritt eine JSONObject
(geschachtelte innen, die JSONArray
). Ich versuche es so:
JSONArray arr = ...; //<-- got by some procedure
for(JSONObject o: arr){
parse(o);
}
Wenn ich versuche, um diesen code zu kompilieren, ja, ich erhalte die Meldung "inkompatible Typen" Fehler, obwohl es wirkt so natürlich. So, meine Frage ist, was ist der beste Weg, um zu Durchlaufen JSONArray
?
InformationsquelleAutor Jacobian | 2015-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenbar
org.json.simple.JSONArray
implementiert eine raw Iterator. Dies bedeutet, dass jedes element als eineObject
. Sie können versuchen, Sie zu werfen:Dies ist, wie Dinge getan wurden, wieder in Java 1.4 und früher.
java.util.Iterator
Ja, es ist
java.util.Iterator
, aber es ist ein raw (E. g. einList<String>
zurückkehren würde, einIterator<String>
, und dann können SieString
als die erweiterte for-Schleife variable den Typ. Wenn es roh, Basis-Typ wird davon ausgegangen, dassObject
.Danke! Ich habe es!
InformationsquelleAutor RealSkeptic
Scheint, wie Sie können nicht Durchlaufen
JSONArray
mit einemfor each
. Sie Durchlaufen IhreJSONArray
wie diese:Quelle
Leider, wie es scheint
JSONArray
ausorg.json.simple.*
nichtlength()
Methode undgetJSONObject()
Haben Sie versucht, mit
org.json.JSONArray
?Nun, ich habe es nicht ausprobiert, noch nicht. Ist es viel stärker?
href="http://stackoverflow.com/questions/26936436/is-org-json-simple-jsonarray-poorly-designed">ich fand diese
InformationsquelleAutor dguay
wenn Sie mit Java 8 können Sie dann
Nur noch einen einfachen test, um zu beweisen, dass es funktioniert:
Fügen Sie das folgende dependency in Ihre
pom.xml
- Datei (um Zu beweisen, dass es funktioniert, ich habe die alte jar-Datei, die war da, als ich gepostet diese Antwort)Und die einfachen test-code-snippet wird:
Ausgabe:
Die Methode forEach((<Nein Typ> Element) -> {}) ist nicht definiert für den Typ JSONArray
Dieser funktioniert nicht mehr. Hier ist, wie es ist getan in Java 8: stackoverflow.com/questions/42854505/...
dies funktioniert nicht für JSONArray. Nicht sicher, wie Sie es bekommt viele Stimmen
die json-Bibliothek, die ich verwendet haben oben
org.json
und Sie könnenforEach
aufJSONArray
können Sie einmal überprüfen, wenn Sie noch im ZweifelInformationsquelleAutor Prasad Khode