Ich habe ein Javascript-Objekt, das mit JSON analysiert wurde. JSON.parse
Ich möchte das Objekt jetzt drucken, damit ich es debuggen kann (mit der Funktion läuft etwas schief). Wenn ich folgendes mache ...
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Ich bekomme mehrere [Objekt Objekt] aufgelistet. Ich frage mich, wie ich das ausdrucken soll, um den Inhalt anzuzeigen.
javascript
json
parsing
printing
Skizit
quelle
quelle
Antworten:
Die meisten Debugger-Konsolen unterstützen die direkte Anzeige von Objekten. Benutz einfach
Abhängig von Ihrem Debugger wird das Objekt in der Konsole höchstwahrscheinlich als reduzierter Baum angezeigt. Sie können den Baum öffnen und das Objekt untersuchen.
quelle
console.log("object: " + obj)
das Objekt nicht angezeigt wird, sondern "object: [Object obj]" ausgegeben wird.console.log("object: %O", obj)
(Chrome) oderconsole.log("object: %o", obj)
(Firefox | Safari) erhalten Sie Zugriff auf die Objektdetails (siehe meine Antwort unten).console.log("My object: ", obj)
Sie wissen, wofür JSON steht? JavaScript-Objektnotation . Es ist ein ziemlich gutes Format für Objekte.
JSON.stringify(obj)
gibt Ihnen eine Zeichenfolgendarstellung des Objekts zurück.quelle
versuche
console.dir()
stattconsole.log()
MDN sagt,
console.dir()
wird unterstützt von:quelle
console.dir()
ist auch in FF8 +, Opera, Chrome und Safari verfügbar: developer.mozilla.org/en-US/docs/Web/API/console.dirWenn Sie einen hübschen, mehrzeiligen JSON mit Einrückung möchten, können Sie ihn
JSON.stringify
mit seinem dritten Argument verwenden:Beispielsweise:
oder
gibt Ihnen folgendes Ergebnis:
In einem Browser
console.log(obj)
macht es noch bessere Arbeit, in einer Shell-Konsole (node.js) jedoch nicht.quelle
console.log( JSON.stringify(data, null, " ") );
Um ein JSON-analysiertes Objekt zu drucken, geben Sie einfach ein und Sie erhalten eine sehr klare Ausgabe
quelle
Verwenden Sie Zeichenfolgenformate.
Chrome hat Formatbezeichner mit der folgenden;
%s
Formatiert den Wert als Zeichenfolge.%d
oder%i
Formatiert den Wert als Ganzzahl.%f
Formatiert den Wert als Gleitkommawert.%o
Formatiert den Wert als erweiterbares DOM-Element (wie im Bedienfeld Elemente).%O
Formatiert den Wert als erweiterbares JavaScript-Objekt.%c
Formatiert die Ausgabezeichenfolge gemäß den von Ihnen bereitgestellten CSS-Stilen.Firefox hat auch String-Substitutionen mit ähnlichen Optionen.
%o
Gibt einen Hyperlink zu einem JavaScript-Objekt aus. Durch Klicken auf den Link wird ein Inspektor geöffnet.%d
oder%i
Gibt eine Ganzzahl aus. Die Formatierung wird noch nicht unterstützt.%s
Gibt eine Zeichenfolge aus.%f
Gibt einen Gleitkommawert aus. Die Formatierung wird noch nicht unterstützt.Safari verfügt über Druckformatierer
%d
oder%i
Ganzzahl%[0.N]f
Gleitkommawert mit N Stellen Genauigkeit%o
Objekt%s
Stringquelle
Schön und einfach:
quelle
Benutz einfach
und Sie erhalten dies in Chrome-Konsole:
quelle
Einfache Funktion zum Warnen des Inhalts eines Objekts oder eines Arrays.
Rufen Sie diese Funktion mit einem Array oder einer Zeichenfolge oder einem Objekt auf, das den Inhalt alarmiert.
Funktion
Verwendung
quelle
Der folgende Code zeigt die vollständigen JSON-Daten im Warnfeld an
quelle
Wenn Sie debuggen möchten, verwenden Sie das Konsolen-Debug
quelle
Wenn Sie in js auf einem Server arbeiten, reicht ein bisschen mehr Gymnastik aus ... Hier ist mein Ppos (Pretty-Print-on-Server):
Das macht einen knallharten Job, etwas zu erstellen, das ich tatsächlich lesen kann, wenn ich Servercode schreibe.
quelle
Ich weiß nicht, wie es nie offiziell erstellt wurde, aber ich habe meine eigene
json
Methode zumconsole
Objekt hinzugefügt , um das Drucken von String-Protokollen zu vereinfachen:Oft ist es erforderlich, eine stringifizierte Version eines Objekts anzuzeigen, da beim Drucken im Ist-Zustand (Rohobjekt) eine "Live" -Version des Objekts gedruckt wird, die im Verlauf des Programms mutiert wird und den Status des Objekts nicht widerspiegelt Zum protokollierten Zeitpunkt zum Beispiel:
quelle