Gibt es in Java / J2ME eine Möglichkeit, eine Zeichenfolge zu konvertieren, z.
{name:"MyNode", width:200, height:100}
zu einer internen Objektdarstellung derselben in einer Codezeile?
Weil die derzeitige Methode zu langwierig ist:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Vielleicht eine JSON-Bibliothek?
java
json
java-me
serialization
Der Blitz
quelle
quelle
{"name":"MyNode", "width":200, "height":100}
Antworten:
Ich habe einige davon benutzt und mein Favorit ist:
http://code.google.com/p/json-simple/
Die Bibliothek ist sehr klein und daher perfekt für J2ME.
Sie können JSON in einer Zeile wie folgt in ein Java-Objekt analysieren:
quelle
Die einfachste Option ist Jackson :
Es gibt andere ähnlich einfach zu verwendende Bibliotheken (Gson wurde bereits erwähnt); Einige Auswahlmöglichkeiten sind jedoch aufwändiger, z. B. die ursprüngliche org.json-Bibliothek, für die Sie ein Zwischenprodukt "JSONObject" erstellen müssen, auch wenn Sie diese nicht benötigen.
quelle
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON ist eine gute Option, um Java-Objekte in JSON-Objekte zu konvertieren und umgekehrt.
Es ist ein Tool von Google.
zum Konvertieren von json in Java-Objektverwendung:
fromJson(jsonObject,javaclassname.class)
zum Konvertieren von Java-Objekt in json-Objektverwendung:
toJson(javaObject)
und der Rest wird automatisch ausgeführt
Für weitere Informationen und zum Download
quelle
Sie können dies problemlos mit Google GSON tun.
Angenommen, Sie haben eine Klasse namens Benutzer mit den Feldern Benutzer, Breite und Höhe und möchten die folgende JSON-Zeichenfolge in das Benutzerobjekt konvertieren.
{"name":"MyNode", "width":200, "height":100}
Mit dem folgenden Code können Sie dies problemlos tun, ohne einen Cast ausführen zu müssen (unter Berücksichtigung des Kommentars von nimcap;)):
Wobei jsonString der obige JSON-String ist.
Weitere Informationen finden Sie unter https://code.google.com/p/google-gson/.
quelle
Sie haben viele JSON-Parser für Java :
JSONObject.java
Ein JSONObject ist eine ungeordnete Sammlung von Name / Wert-Paaren. Die externe Form ist eine Zeichenfolge in geschweiften Klammern mit Doppelpunkten zwischen den Namen und Werten und Kommas zwischen den Werten und Namen. Das interne Formular ist ein Objekt mit den Methoden get () und opt () für den Zugriff auf die Werte nach Namen und put () zum Hinzufügen oder Ersetzen von Werten nach Namen. Die Werte können beliebig sein: Boolean, JSONArray, JSONObject, Number und String oder das JSONObject.NULL-Objekt.
JSONArray.java
Ein JSONArray ist eine geordnete Folge von Werten. Die externe Form ist eine Zeichenfolge in eckigen Klammern mit Kommas zwischen den Werten. Das interne Formular ist ein Objekt mit den Methoden get () und opt () für den Zugriff auf die Werte über den Index und den Methoden put () zum Hinzufügen oder Ersetzen von Werten. Die Werte können folgende sein: Boolean, JSONArray, JSONObject, Number und String oder das JSONObject.NULL-Objekt.
JSONStringer.java
Ein JSONStringer ist ein Tool zum schnellen Erstellen von JSON-Text.
JSONWriter.java
Ein JSONWriter ist ein Tool zum schnellen Schreiben von JSON-Text in Streams.
JSONTokener.java
Ein JSONTokener nimmt eine Quellzeichenfolge und extrahiert Zeichen und Token daraus. Es wird von den Konstruktoren JSONObject und JSONArray verwendet, um JSON-Quellzeichenfolgen zu analysieren.
JSONException.java
Eine JSONException wird ausgelöst, wenn eine Syntax oder ein Prozedurfehler erkannt wird.
JSONString.java
Der JSONString ist eine Schnittstelle, über die Klassen ihre JSON-Serialisierung implementieren können.
quelle
java
Klassen handelt.Auf der offiziellen JSON-Website sollten Sie nachsehen. Es bietet verschiedene Bibliotheken, die mit Java verwendet werden können. Ich persönlich habe diese verwendet, JSON-lib, die eine Implementierung der Arbeit auf der Site ist, sodass sie genau die gleiche Klasse hat - Methoden usw. auf dieser Seite .
Wenn Sie dort auf die HTML-Links klicken, finden Sie alles, was Sie wollen.
Zusamenfassend:
Um ein JSON-Objekt und ein JSON-Array zu erstellen, lautet der Code:
o1, o2 können primitive Typen (long, int, boolean), Strings oder Arrays sein.
Der umgekehrte Vorgang ist ziemlich einfach. Ich meine, eine Zeichenfolge in ein JSON-Objekt / Array konvertieren.
Um korrekt analysiert zu werden, müssen Sie nur wissen, ob Sie ein Array oder ein Objekt analysieren.
quelle
Verwenden Sie dazu die Google GSON- Bibliothek
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
quelle
Wie viele bereits gesagt haben, eine ziemlich einfache Möglichkeit, dies mit JSON.simple wie unten zu tun
Verwenden Sie dann jsonObj, um mit JSON Object umzugehen. zB jsonObj.get ("name");
Gemäß dem folgenden Link zeigt JSON.simple eine konstante Effizienz sowohl für kleine als auch für große JSON-Dateien
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
quelle
JSON IO ist bei weitem der einfachste Weg, eine JSON-Zeichenfolge oder einen JSON-Eingabestream in ein Java-Objekt zu konvertieren
Zeichenfolge zu Java-Objekt
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");
https://code.google.com/p/json-io/
quelle
Dies ist eine alte Frage, und json-simple ( https://code.google.com/p/json-simple/ ) könnte zu diesem Zeitpunkt eine gute Lösung sein. Beachten Sie jedoch, dass das Projekt für eine Weile nicht aktiv zu sein scheint!
Ich schlage den Gson vor, der jetzt gehostet wird unter: https://github.com/google/gson
Wenn die Leistung Ihr Problem ist , können Sie einen Blick auf einige Benchmarks haben http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ , die zu vergleichen.
quelle
Neben www.json.org können Sie auch Ihren eigenen Parser mit Javacc implementieren und Ihre persönliche Grammatik / Ihr persönliches Schema anpassen. Siehe diesen Hinweis in meinem Blog: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
quelle
Ich habe eine Bibliothek geschrieben, die json.org zum Parsen von JSON verwendet, aber tatsächlich einen Proxy einer Schnittstelle für Sie erstellt. Der Code / JAR befindet sich auf code.google.com.
http://fixjures.googlecode.com/
Ich weiß nicht, ob es auf J2ME funktioniert. Da Java Reflection zum Erstellen von Proxys verwendet wird, denke ich, dass dies nicht funktioniert. Außerdem besteht derzeit eine starke Abhängigkeit von Google-Sammlungen, die ich entfernen möchte, und es ist wahrscheinlich zu schwer für Ihre Anforderungen. Sie können jedoch auf die von Ihnen gewünschte Weise mit Ihren JSON-Daten interagieren:
quelle
Erstellen Sie einfach ein Json-Objekt in Java mit dem folgenden Json-String. In Ihrem Fall
Wenn das Obige Ihre Json-Zeichenfolge ist, erstellen Sie einfach ein Json-Objekt damit.
quelle
Jackson für große Dateien, GSON für kleine Dateien und JSON.simple für beide.
quelle