Wie kann ich JSON in einem einfach zu lesenden Format (für menschliche Leser) anzeigen? Ich suche hauptsächlich Einrückungen und Leerzeichen, vielleicht sogar Farben / Schriftstile / etc.
javascript
json
pretty-print
Kennzeichen
quelle
quelle
<pre>
Tag einschließen.Antworten:
Pretty-Printing wird nativ in implementiert
JSON.stringify()
. Das dritte Argument ermöglicht ein hübsches Drucken und legt den zu verwendenden Abstand fest:Wenn Sie eine Syntaxhervorhebung benötigen, können Sie Regex-Magie wie folgt verwenden:
Sehen Sie hier in Aktion: jsfiddle
Oder ein vollständiger Ausschnitt unten:
Code-Snippet anzeigen
quelle
<pre>
.#transactionResponse
Elementwhite-space: pre;
einen CSS-Stil hat.stringify(...)
für JSON- Objekte und nicht für JSON-Zeichenfolgen funktioniert . Wenn Sie eine Zeichenfolge haben, müssen SieJSON.parse(...)
zuerstDie Antwort von Benutzer Pumbaa80 ist großartig, wenn Sie ein Objekt haben, das Sie schön drucken möchten. Wenn Sie von einer gültigen JSON- Zeichenfolge ausgehen , die Sie hübsch drucken möchten, müssen Sie sie zuerst in ein Objekt konvertieren:
Dadurch wird ein JSON-Objekt aus der Zeichenfolge erstellt und anschließend mithilfe des hübschen Drucks von JSON stringify wieder in eine Zeichenfolge konvertiert.
quelle
JSON.parse
so dass ich ihn modifizierteJSON.stringify(jsonString, null, 2)
. Hängt von Ihrem JSON / Objekt ab.<pre></pre>
Tags einschließen müssen.JSON.parse
stirbt nur, wenn Sie eine ungültige JSON- Zeichenfolge haben oder diese bereits in ein Objekt konvertiert ist. Stellen Sie sicher, dass Sie wissen, mit welchem Datentyp Sie es zu tun haben, bevor Sie versuchenJSON.parse
Besserer Weg.
Verschönern Sie das JSON-Array in Javascript
quelle
Basierend auf der Antwort von Pumbaa80 habe ich den Code so geändert, dass die Farben console.log (die sicher auf Chrome funktionieren) und nicht HTML verwendet werden. Die Ausgabe kann in der Konsole angezeigt werden. Sie können die _Variablen in der Funktion bearbeiten und etwas mehr Stil hinzufügen.
Hier ist ein Lesezeichen, das Sie verwenden können:
Verwendungszweck:
Bearbeiten: Ich habe gerade versucht, das% -Symbol mit dieser Zeile nach der Variablendeklaration zu umgehen:
Aber ich finde heraus, dass Chrome% Escape in der Konsole nicht unterstützt. Seltsam ... Vielleicht funktioniert das in Zukunft.
Prost!
quelle
Bei der Anzeige in HTML sollten Sie einen Balise hinzufügen
<pre></pre>
Beispiel:
Code-Snippet anzeigen
quelle
<pre>
ist ein Muss, wenn Sie den JSON in a anzeigen<div>
. Nur für diesen Hinweis positiv bewertet!Ich benutze die JSONView Chrome-Erweiterung (sie ist so hübsch wie es nur geht :):
Bearbeiten: hinzugefügt
jsonreport.js
Ich habe auch einen eigenständigen Online-JSON-Pretty-Print-Viewer, jsonreport.js, veröffentlicht, der einen für Menschen lesbaren HTML5-Bericht bereitstellt, mit dem Sie alle JSON-Daten anzeigen können.
Weitere Informationen zum Format finden Sie im neuen JavaScript HTML5-Berichtsformat .
quelle
Sie können verwenden
console.dir()
, was eine Verknüpfung für istconsole.log(util.inspect())
. (Der einzige Unterschied besteht darin, dass alleinspect()
für ein Objekt definierten benutzerdefinierten Funktionen umgangen werden.)Es verwendet Syntaxhervorhebung , intelligentes Einrücken , entfernt Anführungszeichen von Tasten und macht die Ausgabe so hübsch wie es nur geht.
und für die Kommandozeile:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
quelle
Hier ist User123444555621s fantastisches HTML, das für Terminals angepasst ist. Praktisch zum Debuggen von Node-Skripten:
Verwendungszweck:
quelle
Zum Debuggen benutze ich:
quelle
console.debug(data);
(zumindest) Chrome und Firefox. Es zeigt keine JSON-Darstellung vondata
, geschweige denn eine hübsch gedruckte.console.debug("%s: %o x %d", str, data, cnt);
kann für jemanden noch hilfreich sein.console.dir
welche die Daten navigieren können.Unzufrieden mit anderen hübschen Druckern für Ruby schrieb ich meinen eigenen ( NeatJSON ) und portierte ihn dann auf JavaScript, einschließlich eines kostenlosen Online-Formatierers . Der Code ist unter MIT-Lizenz kostenlos (recht zulässig).
Funktionen (alle optional):
Ich werde den Quellcode hier kopieren, damit dies nicht nur ein Link zu einer Bibliothek ist, sondern ich empfehle Ihnen, zur GitHub-Projektseite zu gehen , da dieser auf dem neuesten Stand gehalten wird und der folgende Code nicht.
quelle
Vielen Dank @all! Basierend auf den vorherigen Antworten ist hier eine andere Variantenmethode, die benutzerdefinierte Ersetzungsregeln als Parameter bereitstellt:
quelle
Es funktioniert gut:
Lesen Sie hier mehr: https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
quelle
Douglas Crockfords JSON in der JavaScript-Bibliothek druckt JSON über die Stringify-Methode.
Möglicherweise finden Sie auch die Antworten auf diese ältere Frage hilfreich: Wie kann ich JSON in einem (Unix-) Shell-Skript hübsch drucken?
quelle
Ich bin heute auf ein Problem mit dem Code von @ Pumbaa80 gestoßen. Ich versuche, die JSON-Syntaxhervorhebung auf Daten anzuwenden, die ich in einer Mithril- Ansicht rendere. Daher muss ich DOM-Knoten für alles in der
JSON.stringify
Ausgabe erstellen .Ich habe den wirklich langen regulären Ausdruck auch in seine Bestandteile aufgeteilt.
Code im Kontext auf Github hier
quelle
Hier ist eine einfache JSON-Format- / Farbkomponente, die in React geschrieben wurde:
Sehen Sie, wie es in diesem CodePen funktioniert: https://codepen.io/benshope/pen/BxVpjo
Ich hoffe, das hilft!
quelle
Sie können
JSON.stringify(your object, null, 2)
den zweiten Parameter als Ersetzungsfunktion verwenden, die Schlüssel und Val als Parameter verwendet. Dies kann verwendet werden, wenn Sie etwas in Ihrem JSON-Objekt ändern möchten.Weitere Informationen: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
quelle
Wenn Sie dies benötigen, um in einem Textbereich zu arbeiten, funktioniert die akzeptierte Lösung nicht.
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
quelle
Wenn Sie nach einer schönen Bibliothek suchen, um json auf einer Webseite zu verschönern ...
Prism.js ist ziemlich gut.
http://prismjs.com/
Ich fand, dass die Verwendung von JSON.stringify (obj, undefined, 2) zum Abrufen der Einrückung und die Verwendung von Prisma zum Hinzufügen eines Themas ein guter Ansatz war.
Wenn Sie in JSON über einen Ajax-Aufruf laden, können Sie eine der Prism-Dienstprogrammmethoden zum Verschönern ausführen
Zum Beispiel:
quelle
Das ist nett:
https://github.com/mafintosh/json-markup von
mafintosh
HTML
Ein Beispiel für ein Stylesheet finden Sie hier
quelle
Es konnte keine Lösung gefunden werden, die eine gute Syntaxhervorhebung für die Konsole aufweist. Hier ist meine 2p
Installieren und Hinzufügen der CLI-Highlight-Abhängigkeit
Definieren Sie logjson global
Verwenden
quelle
Ich empfehle die Verwendung von HighlightJS . Es verwendet das gleiche Prinzip wie die akzeptierte Antwort, funktioniert jedoch auch für viele andere Sprachen und verfügt über viele vordefinierte Farbschemata . Wenn Sie RequireJS verwenden , können Sie ein kompatibles Modul mit generieren
Die Generierung basiert auf Python3 und Java. Hinzufügen
-n
, um eine nicht minimierte Version zu generieren.quelle
So können Sie ohne native Funktion drucken.
quelle
Der einfachste Weg, ein Objekt für Debugging-Zwecke anzuzeigen:
Wenn Sie das Objekt im DOM anzeigen möchten, sollten Sie berücksichtigen, dass es Zeichenfolgen enthalten kann, die als HTML interpretiert werden. Deshalb müssen Sie etwas entkommen ...
quelle
quelle
So heben Sie es hervor und verschönern es
HTML
mitBootstrap
:quelle