Frage ein JSONObject in Java ab
Ich Frage mich, ob irgendwo da draußen existiert eine java-librery Abfragen können ein JSONObject. Weiter In der Tiefe ich bin auf der Suche nach etwas wie:
String json = "{ data: { data2 : { value : 'hello'}}}";
...
//Somehow we managed to convert json to jsonObject
...
String result = jsonObject.getAsString("data.data2.value");
System.out.println(result);
Ich erwarte, dass man "Hallo" als Ausgabe.
Mittlerweile ist die Schnellste Möglichkeit, die ich gefunden habe, ist mit Gson:
jsonObject.getAsJsonObject("data").getAsJsonObject().get("data2").getAsJsonObject("value").getAsString();
Es ist wirklich nicht einfach zu schreiben und zu Lesen. Gibt es etwas schnellere?
InformationsquelleAutor der Frage Pamput | 2013-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade unerwartet gefunden, sehr Interessantes Projekt: JSON-Pfad
Mit dieser Bibliothek können Sie tun, was Sie fordern sogar noch einfacher, dann meinem vorherigen Vorschlag:
Hoffe, dass dies hilfreich sein könnte.
InformationsquelleAutor der Antwort n1ckolas
Zwar nicht genau gleich, Jackson hat den Tree-Modell-Darstellung ähnlich Gson:
so müssen Sie Durchlaufen Sie Schritt für Schritt durch.
BEARBEITEN (August 2015)
Gibt es nun eigentlich wirklich ist (da Jackson 2.3) Unterstützung für JSON-Zeiger Ausdrücke mit Jackson. So könnte man alternativ verwenden:
InformationsquelleAutor der Antwort StaxMan
Zunächst, ich würde empfehlen, zu überlegen, JSON-Objekt verbindlich.
Aber im Falle dass, wenn Sie beliebige JSON-Objekten und Sie möchten, Verfahren Sie so, wie Sie beschrieben ist, würde ich vorschlagen, kombinieren Jackson JSON processor zusammen mit Apache Commons Beanutils.
Die Idee ist die folgende: Jackson standardmäßig alle verarbeiten von JSON ist, als
java.util.Map
Instanzen, mittlerweile Commons Beanutils vereinfacht-Eigenschaft Zugriff auf alle Objekte, einschließlich arrays und Anzeigen unterstützt.So können Sie es verwenden, so etwas wie dieses:
InformationsquelleAutor der Antwort n1ckolas
Glaube ich kein Weg.
Betrachten Sie eine java-Klasse
Hier, wenn wir wollen, Zugang vorbehaltlich der name dann
Wir keinen Zugriff auf Namen direkt, wenn ja, dann werden wir nicht bekommen richtige Thema Namen. Wie hier:
Wenn Sie möchten, verwenden Sie das gleiche wie java-Objekt verwenden Sie dann
ClassName müssen alle Felder übereinstimmen jsonstring. Wenn Sie ein jsonobject innerhalb eines jsonobject dann müssen Sie erstellen Sie separate Klasse, so wie ich in Student und das Thema Klasse.
InformationsquelleAutor der Antwort Parvathy
Können Sie verwenden, org.json
InformationsquelleAutor der Antwort GSK