Konvertieren von JSON-Daten in Java-Objekte
Möchte ich auf Eigenschaften zugreifen, die aus einem JSON-string in meiner Java-action-Methode. Der string ist erhältlich, indem Sie einfach sagen myJsonString = object.getJson()
. Unten ist ein Beispiel von dem, was der string kann so Aussehen:
{
'title': 'ComputingandInformationsystems',
'id': 1,
'children': 'true',
'groups': [{
'title': 'LeveloneCIS',
'id': 2,
'children': 'true',
'groups': [{
'title': 'IntroToComputingandInternet',
'id': 3,
'children': 'false',
'groups': []
}]
}]
}
In diesem string alle JSON-Objekt enthält ein array von anderen JSON-Objekte. Die Absicht ist, extrahieren Sie eine Liste von IDs, wo jedes Objekt besitzt eine Gruppe eine Eigenschaft mit anderen JSON-Objekte. Ich schaute auf Google Gson als eine mögliche JSON-plugin. Kann mir jemand irgendeine form von Anleitung, wie kann ich das generieren von Java aus diesem JSON-string?
InformationsquelleAutor der Frage Binaryrespawn | 2009-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Google Gson unterstützt generics und verschachtelte beans. Die
[]
im JSON stellt ein array und sollte anzeigen, eine Java-Sammlung wieList
oder nur eine schlichte Java-array. Die{}
im JSON stellt ein Objekt dar, und sollte anzeigen, um eine Java -Map
oder nur einige JavaBean-Klasse.Haben Sie ein JSON-Objekt mit einigen Eigenschaften, die die
groups
Eigenschaft stellt ein array von geschachtelten Objekten des selben Typs. Dies kann analysiert werden, mit Gson der folgenden Weise:Ziemlich einfach, ist es nicht? Müssen nur einen geeigneten JavaBean und rufen
Gson#fromJson()
.Siehe auch:
InformationsquelleAutor der Antwort BalusC
Bewaaaaare von Gson! Es ist sehr cool, sehr toll, aber die zweite Sie möchten, etwas anderes zu tun, als einfache Objekte, könnten Sie einfach brauchen, um zu beginnen den Aufbau Ihrer eigenen serialisierungsprogramme (das ist nicht dass hart).
Auch, wenn Sie ein array von Objekten, und Sie Deserialisieren einige json in das array von Objekten, die echte Typen sind VERLOREN! Der vollständige Objekte nicht selbst kopiert werden! Verwenden XStream.., Die, wenn Sie mit der jsondriver und festlegen der richtigen Einstellungen, codieren, hässlichen Typen in die eigentlichen json, so dass Sie nicht verlieren alles. Ein kleiner Preis zu zahlen (hässlich json) für die true-Serialisierung.
Beachten Sie, dass Jackson behebt diese Probleme und ist schneller als GSON.
InformationsquelleAutor der Antwort Jor
Seltsam, die einzige anständige JSON-Prozessor erwähnt, der bisher GSON.
Hier sind weitere gute Möglichkeiten:
BEARBEITEN (Aug/2013):
Einer mehr zu berücksichtigen:
InformationsquelleAutor der Antwort StaxMan
Oder mit Jackson:
InformationsquelleAutor der Antwort Gene De Lisa
Wenn, ändern, sind Sie in einer Anwendung bereits verwendet http://restfb.com/ dann können Sie tun:
etc.
InformationsquelleAutor der Antwort cherouvim
Wenn Sie jede Art von speziellen Karten mit Schlüssel oder Werte auch von speziellen Karten, werden Sie feststellen, es ist nicht vorgesehen, durch die Implementierung von google.
InformationsquelleAutor der Antwort Juanma
InformationsquelleAutor der Antwort HEAT
Was ist Los mit den standard-Sachen?
InformationsquelleAutor der Antwort Kevin
Einfache und funktionierende java-code zu konvertieren
JSONObject
zuJava Object
Employee.java
LoadFromJSON.java
InformationsquelleAutor der Antwort Rahul Raina
Geben boon versuchen:
https://github.com/RichardHightower/boon
Ist es böse fallen:
https://github.com/RichardHightower/json-parsers-benchmark
Nehmen Sie nicht mein Wort für es... schaut Euch die gatling-benchmark.
https://github.com/gatling/json-parsers-benchmark
(Bis zu 4x in manchen Fällen, und aus 100s der test. Es hat auch eine index-overlay-Modus, der sogar noch schneller ist. Es ist jung, aber hat schon einige Benutzer.)
Kann es Parsen von JSON zu Karten und Listen schneller als jede andere lib Parsen einer JSON-DOM-und das ist ohne Index-Overlay-Modus. Mit Segensreichen Index-Overlay-Modus, es ist sogar noch schneller.
Er hat auch eine sehr schnelle JSON-lax-Modus und eine PLIST parser-Modus. 🙂 (und hat eine super-low-memory, direct aus Byte-Modus mit UTF-8-Codierung on the fly).
Es hat auch die schnellsten JSON zu JavaBean-Modus zu.
Es ist neu, aber wenn es auf Geschwindigkeit und einfache API ist das, was du suchst, ich glaube nicht, dass es ein schneller oder mehr minimalistische API.
InformationsquelleAutor der Antwort RickHigh
Je nach Eingang JSON format(string/file) erstellen Sie einen jSONString. Beispiel-Nachricht entsprechende class-Objekt zu JSON erhalten werden können, wie unten:
Nachricht msgFromJSON = new ObjectMapper().readValue(jSONString, Message.class);
InformationsquelleAutor der Antwort Shailendra Singh