JavaScript-Datenformatierung / hübscher Drucker
Ich versuche, einen Weg zu finden pretty print
eine JavaScript-Datenstruktur in eine lesbare form für die Fehlersuche.
Ich habe eine ziemlich große und komplizierte Datenstruktur gespeichert, die in JS und ich muss code schreiben, um es zu manipulieren. Um zu arbeiten, was ich mache und wo ich bin, was falsch läuft, was ich wirklich brauche, ist zu sehen, die Daten-Struktur in Ihrer Gesamtheit, und aktualisieren Sie es, wenn ich die änderungen über die Benutzeroberfläche.
Alles von diesem Zeug kann ich mich behandeln, abgesehen von der Suche nach ein schöner Weg, um Sie dump ein JavaScript-Daten-Struktur in eine lesbare Zeichenfolge. JSON tun würde, aber muss es wirklich sein, schön formatiert und eingerückt. Würde ich in der Regel verwenden Sie Firebug ausgezeichnete DOM-dumping-Zeug, aber ich wirklich brauchen, um in der Lage zu sehen, die gesamte Struktur auf einmal, das scheint nicht möglich zu sein, in Firebug.
Anregungen sind willkommen.
Vielen Dank im Voraus.
InformationsquelleAutor der Frage Dan | 2008-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schrieb ich eine Funktion dump ein JS-Objekt in eine lesbare form, obwohl die Ausgabe nicht eingerückt, aber es sollte nicht zu hart sein, um hinzufügen: ich habe diese Funktion von einem habe ich für Lua (viel komplexer), die behandelt diese Einrückung Problem.
Hier ist die "einfache" version:
Schaue ich an, es zu verbessern ein bisschen.
Hinweis 1: um es Zu benutzen, tun
od = DumpObject(something)
und verwenden od.dump. Gewundenen, weil ich wollte, dass der len-Wert zu (Anzahl der Elemente) für einen anderen Zweck. Es ist trivial, um die Funktion nur der string.Hinweis 2: es muss nicht mit Schleifen in den Referenzen.
BEARBEITEN
Machte ich die eingerückte version.
Wählen Sie Ihre Einrückung auf der Zeile, die mit dem rekursiven Aufruf, und Sie Klammer Stil, indem du die auskommentierte Zeile nach diesem.
... Ich sehe Sie peitschte Ihre eigene version, die ist gut. Besucher haben die Wahl.
InformationsquelleAutor der Antwort PhiLho
Verwenden Crockford ' s JSON.stringify wie diese:
Variable
text
würde wie folgt Aussehen:Durch die Art und Weise, dies erfordert nichts mehr als, dass die JS - Datei-Sie arbeiten mit einer Bibliothek, etc.
InformationsquelleAutor der Antwort Jason Bunting
Können Sie die folgenden
InformationsquelleAutor der Antwort Dharmanshu Kamra
In
Firebug
, wenn Sie nurconsole.debug ("%o", my_object)
können Sie es anklicken in der Konsole und geben Sie eine interaktive Objekt-explorer. Es zeigt das gesamte Objekt, und Sie können erweitern Sie verschachtelte Objekte.InformationsquelleAutor der Antwort John Millikin
Für diejenigen, die für ein fantastischer Weg, um zu sehen, Ihr Objekt überprüfen prettyPrint.js
Erstellt eine Tabelle mit konfigurierbaren Optionen anzuzeigen, die gedruckt werden irgendwo auf deinem doc. Besser zu sehen, als in der
console
.InformationsquelleAutor der Antwort RaphaelDDL
Für Node.js verwenden Sie:
API-Dokumentation
InformationsquelleAutor der Antwort Davem M
Ich bin Programmierung in
Rhino
und ich war nicht zufrieden mit die Antworten wurden hier veröffentlicht. So ich geschrieben habe, meine eigenen pretty printer:Die Ausgabe sieht wie folgt aus:
Habe ich auch gepostet hat, als Gist hier für jeden zukünftigen änderungen erforderlich sind.
InformationsquelleAutor der Antwort
jsDump
wird
QUnit (Unit-testing-framework von jQuery) mit leicht gepatchte version von jsDump.
JSON.stringify () - ist nicht die beste Wahl, auf einige Fälle.
InformationsquelleAutor der Antwort NVI
Einnahme von PhiLho ' s führen (vielen Dank :)), landete ich Schreibe meine eigenen, konnte ich nicht so Recht sein, zu tun, was ich wollte. Es ist ziemlich hart und bereit, aber es macht den job, die ich brauche. Danke Euch allen für die ausgezeichneten Vorschläge.
Es ist nicht Brillant, code, ich weiß, aber für was es Wert ist, hier ist es. Jemand Sie nützlich finden könnten:
InformationsquelleAutor der Antwort Dan
Dies ist wirklich nur ein Kommentar zu Jason Bunting "Verwenden Crockford' s JSON.stringify", aber ich war nicht in der Lage, um einen Kommentar zu dieser Antwort.
Wie bereits angemerkt in den Kommentaren, JSON.stringify spielt nicht gut mit dem Prototyp (www.prototypejs.org) Bibliothek. Es ist jedoch ziemlich einfach zu machen, Sie spielen gut zusammen, indem Sie es vorübergehend entfernen Sie das Array.der Prototyp.toJSON-Methode Prototyp fügt hinzu, laufen Crockford ' s stringify(), setze es dann wieder so:
InformationsquelleAutor der Antwort Peter Rust
Dachte ich, J. Ammern Reaktion auf die Verwendung von JSON.stringify war auch gut. Ein Seiteneffekt ist, können Sie JSON verwenden.stringify über YUIs JSON-Objekt, wenn Sie geschehen, werden mit YUI. In meinem Fall brauchte ich, um einen dump zu HTML, so dass es einfacher war, nur zwicken/Ausschneiden/einfügen PhiLho Antwort.
InformationsquelleAutor der Antwort GTM
Viele Leute code schreiben in diesem thread, mit vielen Anmerkungen über die verschiedenen Fallstricke. Mir gefiel diese Lösung, weil es schien, vollständige und war eine einzelne Datei keine Abhängigkeiten.
browser
nodejs
Es funktionierte "out of the box" und hat sowohl Knoten-und browser-Versionen (vermutlich nur verschiedene Wrapper, aber ich wollte nicht Graben, um zu bestätigen).
Die Bibliothek unterstützt auch die pretty-Print-XML, SQL und CSS, aber ich habe nicht versucht, diese Funktionen.
InformationsquelleAutor der Antwort mm2001
Einen einfachen ein-für die Bedruckung der Elemente als strings:
InformationsquelleAutor der Antwort aliteralmind
Meine NeatJSON Bibliothek hat sowohl Ruby und JavaScript-Versionen. Es ist frei verfügbar unter einer (permissiven) MIT-Lizenz. Sehen Sie eine online-demo/Konverter bei:
http://phrogz.net/JS/neatjson/neatjson.html
Einige Funktionen (alle optional):
InformationsquelleAutor der Antwort Phrogz
flexjson umfasst eine prettyPrint () - Funktion geben könnte, was man will.
InformationsquelleAutor der Antwort andy