Ich benutze json-einfach und ich muss JSON-Daten hübsch drucken (sie besser lesbar machen).
Ich konnte diese Funktionalität in dieser Bibliothek nicht finden. Wie wird dies gemeinsam erreicht?
java
json
pretty-print
json-simple
Mabuzer
quelle
quelle
scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)");
GsonBuilder
, da war ich mitgson.toJson(object)
ich einfach aus mußte meine Instanziierung ändernGson gson = new Gson();
zuGson gson = new GsonBuilder().setPrettyPrinting().create();
und mein Code Arbeit fortgesetzt , aber ziemlich das Objekt statt einer einzigen Zeile gedruckt.Ich habe die in org.json integrierten Methoden verwendet, um die Daten hübsch auszudrucken.
Die Reihenfolge der Felder in JSON ist per Definition zufällig. Eine bestimmte Reihenfolge unterliegt der Parser-Implementierung.
quelle
Es scheint, dass GSON dies unterstützt, obwohl ich nicht weiß, ob Sie von der verwendeten Bibliothek wechseln möchten.
Aus der Bedienungsanleitung:
quelle
Mit Jackson (
com.fasterxml.jackson.databind
):Von: So aktivieren Sie die hübsche JSON-Druckausgabe (Jackson)
Ich weiß, dass dies bereits in den Antworten enthalten ist, aber ich möchte es hier separat schreiben, da Sie wahrscheinlich bereits Jackson als Abhängigkeit haben und daher nur eine zusätzliche Codezeile benötigen
quelle
Wenn Sie eine Java-API für die Implementierung der JSON-Verarbeitung (JSR-353) verwenden, können Sie die
JsonGenerator.PRETTY_PRINTING
Eigenschaft beim Erstellen einer angebenJsonGeneratorFactory
.Das folgende Beispiel wurde ursprünglich in meinem Blogbeitrag veröffentlicht .
quelle
Meine Situation ist, dass mein Projekt einen älteren JSON-Parser (nicht JSR) verwendet, der kein hübsches Drucken unterstützt. Ich musste jedoch hübsch gedruckte JSON-Beispiele erstellen. Dies ist möglich, ohne dass zusätzliche Bibliotheken hinzugefügt werden müssen, solange Sie Java 7 und höher verwenden:
quelle
Hübscher Druck mit GSON in einer Zeile:
Dies entspricht neben dem Inlining der akzeptierten Antwort .
quelle
Die meisten vorhandenen Antworten hängen entweder von einer externen Bibliothek ab oder erfordern eine spezielle Java-Version. Hier ist ein einfacher Code zum hübschen Drucken einer JSON-Zeichenfolge, wobei nur allgemeine Java-APIs verwendet werden (verfügbar in Java 7 für höhere Versionen; ältere Version wurde jedoch nicht ausprobiert).
Die Grundidee besteht darin, die Formatierung basierend auf Sonderzeichen in JSON zu aktivieren. Wenn beispielsweise ein '{' oder '[' beobachtet wird, erstellt der Code eine neue Zeile und erhöht die Einrückungsstufe.
Haftungsausschluss: Ich habe dies nur für einige einfache JSON-Fälle getestet (grundlegendes Schlüssel-Wert-Paar, Liste, verschachteltes JSON), sodass möglicherweise Arbeit für allgemeineren JSON-Text erforderlich ist, z. B. Zeichenfolgenwert mit Anführungszeichen oder Sonderzeichen (\ n, \ t usw.).
quelle
In einer Zeile:
Das json-io libray ( https://github.com/jdereg/json-io ) ist eine kleine Bibliothek (75 KB ) ohne andere Abhängigkeiten als das JDK.
Zusätzlich zum hübschen Drucken von JSON können Sie Java-Objekte (ganze Java-Objektdiagramme mit Zyklen) in JSON serialisieren und einlesen.
quelle
Dies kann nun mit der JSONLib-Bibliothek erreicht werden:
http://json-lib.sourceforge.net/apidocs/net/sf/json/JSONObject.html
Wenn (und nur wenn) Sie die überladene
toString(int indentationFactor)
Methode und nicht die StandardmethodetoString()
verwenden.Ich habe dies in der folgenden Version der API überprüft:
quelle
Nach den JSON-P 1.0-Spezifikationen ( JSR-353 ) könnte eine aktuellere Lösung für ein bestimmtes
JsonStructure
(JsonObject
oderJsonArray
) wie folgt aussehen:quelle
In JSONLib können Sie Folgendes verwenden:
Aus dem Javadoc :
quelle
Sie können Gson wie unten verwenden
Aus dem Post- JSON-Druck mit Gson
Alternativ können Sie Jackson wie unten verwenden
Aus dem Beitrag Pretty Print JSON in Java (Jackson)
Ich hoffe das hilft!
quelle
Verwenden von org json. Referenz - Link
Mit Gson. Referenz - Link
Mit Jackson. Referenz - Link
Mit Genson. Referenz Link .
quelle
Das hat bei mir mit Jackson funktioniert:
quelle
mapper
kam das?Sie können eine kleine JSON- Bibliothek verwenden
quelle
Unterstrich-Java hat statische Methode
U.formatJson(json)
. Es werden fünf Formattypen unterstützt: 2, 3, 4, Registerkarten und Kompakt. Ich bin der Betreuer des Projekts. Live BeispielAusgabe:
quelle