Wie kann ich ein JavaScript-Objekt?
Wie zeige ich den Inhalt einer JavaScript-Objekt in ein string-format, wie wenn wir alert
eine variable?
Den gleichen formatiert, wie ich will, die Anzeige ein Objekt.
Würden Sie sich bitte formulieren Sie Ihre Frage? Was meinst du mit "formatiert"? Wie mit rich-Formatierung wie Fett/Kursiv/etc?
gibt es eine Möglichkeit, die Anzeige der Laufzeit-dem Wert einer Variablen durch den Druck der Wert der Variablen, Verwendung von einigen console commands?
Nur tun
Kannst du bitte wählen Sie eine bessere Antwort, die genauer reflektiert Konsens der Gemeinschaft?
Wie diese
gibt es eine Möglichkeit, die Anzeige der Laufzeit-dem Wert einer Variablen durch den Druck der Wert der Variablen, Verwendung von einigen console commands?
Nur tun
console.log("", yourObject1, yourObject2, yourObject3, etc...);
. Eine kürzere version ist einfach zu tun console.log(yourObject1, yourObject2, etc...);
.Kannst du bitte wählen Sie eine bessere Antwort, die genauer reflektiert Konsens der Gemeinschaft?
Wie diese
console.log('a string', aNumber, anObject)
InformationsquelleAutor maxjackie | 2009-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Firefox
Wenn Sie möchten, drucken Sie das Objekt, für debugging-Zwecke, ich schlage vor, stattdessen die Installation Firebug für Firefox und mit dem code:
Mit Chrome
zeigt
Hinweis : müssen Sie nur log das Objekt. Zum Beispiel funktioniert es nicht :
console.log(obj1, obj2)
sehr gut funktioniert, so dass Sie nicht haben, um Anrufconsole.log()
für jedes Objekt bei der Anmeldung mehrerer Variablen. Auch, denken Sie immer daran, entfernen Sie diese Anrufe in der Produktion, wie Sie brechen mit Browsern, die nicht umzusetzen (z.B. Internet Explorer).Dies funktioniert nicht, es gibt [object object]
Ja, es gibt [object object] aber es hat ein wenig expando-toggly neben dem button, der es Ihnen erlaubt prüfen Sie den Inhalt des Objekts.
kann es eigentlich beides tun. ich habe einen Gegenstand den ich erstellt mit: var obj = { "foo" : false }; und ein anderes Objekt übergeben wird, in einen Rückruf von einem server, der einen durch die übergebene callback-Drucke mit dem kleinen Pfeil, so dass Sie es öffnen können, die statisch erstellt man druckt nur [object object] ohne Pfeil. Ich bin versucht, dieses heraus zu, alle anderen Gedanken?
console.log("id:"+obj);
wird nicht korrekt ausgegeben, da gibt es einen string wie Sie sehen, es gibt, müssen Sie angeben, wie diese:console.log("id:"); console.log(obj);
InformationsquelleAutor Triptych
Native
JSON.stringify
Methode.Funktioniert auch mit verschachtelten Objekte und alle gängigen Browser Unterstützung dieser Methode.
Link zu Mozilla-API-Referenz und andere Beispiele.
Verwenden Sie eine benutzerdefinierte JSON.stringify replacer wenn Sie
stoßen diese Javascript-Fehler
JSON.stringify können, zeigen nur eine kleine Teilmenge der javascript-Werte, und eine Ausnahme für den rest - Konsole.log hat dieses problem nicht.
Wenn Sie ein Neuling wie mich, nicht zu vergessen
console.log
d.h.console.log(JSON.stringify(obj,null, 4));
"Uncaught TypeError: Umwandlung einer kreisförmigen Struktur zu JSON", wenn ob=Fenster.
Ich hatte Fälle, wo es nicht funktioniert : es zeigte
{}
für ein nicht-leeres Objekt. So sicher sein, check mitconsole.log(obj)
bevor Sie denken, Ihr Objekt ist leer, wennstrigify()
zurück{}
.InformationsquelleAutor Sandeep
foreach()
Dank!Dies ist genau das, was ich will. Ich bin mit google maps v3 und die directionrenderer gibt ein Objekt zurück. Das hat vier Elemente, und dass man Objekte name ändert sich ständig, so müssen wir feststellen, dass. Für diese Methode hat wirklich geholfen. Neben diesem Weg, wir kommen alle Namen der Objekte und Eigenschaften. Oder gibt es eine andere Möglichkeit zu finden, die Namen der Objekte und Eigenschaften?
+1, nicht alle javascript-Ausführung im Browser oder debuggt werden kann, in Ihnen.
Möchten Sie vermutlich die Maske, die eingebauten Reste mit hasOwnProperty die meiste Zeit.
Omg -- 0: [; 1: a; 2: b; 3: B; 4: e; 5: c; 6: t; 7: ; 8: O; 9: b, 10: B; 11: e, 12: c, 13: t; 14: ];
InformationsquelleAutor Flavius Stef
console.dir(object)
:Beachten Sie, dass die
console.dir()
Funktion ist nicht standard. Sehen MDN Web-DocsInformationsquelleAutor Pizzaiola Gorgonzola
versuchen Sie dies :
Dies wird drucken Sie die stringify-version des Objektes. Also anstatt
[object]
als Ausgabe erhalten Sie die Inhalte des Objekts.typeerror: Converting circular structure to JSON
?finden Sie diese Antwort für den Fehler: stackoverflow.com/questions/4816099/... Es ist wahrscheinlich ein DOM-element in Ihrem Objekt. Wenn das der Fall ist, sind Sie am besten versuchen, um melden Sie sich einfach auf der Konsole in chrome oder firefox, und untersuchen Sie es. Sonst müsste man Streifen aus alle kreisförmigen Elemente, bevor Sie der JSON.stringify wird aufgerufen, um für Sie zu arbeiten.
Lösung ist, einfach aufgeteilt in 2 separate Befehle es glauben oder nicht: die Konsole.log("id:"); console.log(obj);
InformationsquelleAutor Abhishek Goel
Gut, Firefox (Dank an @Bojangles für detaillierte Informationen) hat
- Objekt.toSource()
Methode, die druckt Objekte als JSON undfunction(){}
.Das reicht für die meisten debugging-Zwecke, denke ich.
Natürlich geht es nicht 🙁
Alten thread gerade gefunden über Google.
.toSource()
ist eigentlich Firefox nur. Dachte nur, ich würde Sie wissen lassen.schade, ich habe Chrome und es funktioniert nicht
InformationsquelleAutor alamar
Wenn Sie verwenden möchten, alarmieren, drucken Sie Ihr Objekt, können Sie dies tun:
alert("myObject is " + myObject.toSource());
Sollte es drucken, jede Eigenschaft und den entsprechenden Wert im string-format.
Aber dies funktioniert gut für Firefox (Gecko) Browser COOL !!!!
InformationsquelleAutor Garry
In NodeJS Sie drucken können ein Objekt mithilfe
util.inspizieren(obj)
. Werden Sie sicher, dass die Tiefe oder haben Sie nur eine flache drucken des Objekts.InformationsquelleAutor Lander
Wenn Sie möchten, um zu sehen Daten in Tabellenform, die Sie verwenden können
Tabelle kann sortiert werden, wenn Sie klicken Sie auf die Spalte.
Können Sie auch auswählen, welche Spalten zu zeigen:
Finden Sie weitere Informationen über die Konsole.Tabelle hier
InformationsquelleAutor Vlad Bezden
Funktion:
Verwendung:
Beispiel:
http://jsfiddle.net/WilsonPage/6eqMn/
scheint nicht zu funktionieren für Ganzzahlen
Sie sollten drehen Sie den if-else-um und schauen Sie für das Objekt statt nur string. aktualisiert fiddle: jsfiddle.net/6eqMn/594
Diese versagt, wenn ich auf add integer-Wert tel Eigenschaft 🙁
InformationsquelleAutor wilsonpage
Als es vorher gesagt wurde am besten und am einfachsten Weg, den ich fand, war
navigator
.InformationsquelleAutor yonia
Verwenden:
InformationsquelleAutor Walter Caraza
Drucken das vollständige Objekt mit Node.js mit Farben als bonus:
Farben sind natürlich optional, Tiefe: null' drucken des vollständigen Objekt.
Die Optionen scheinen nicht unterstützt zu werden in Browsern.
Referenzen:
https://developer.mozilla.org/en-US/docs/Web/API/Console/dir
https://nodejs.org/api/console.html#console_console_dir_obj_options
InformationsquelleAutor jpoppe
Wenn Sie möchten, drucken Sie das Objekt Ihrer vollen Länge, können
Wenn Sie möchten, drucken Sie das Objekt durch Konvertierung in den string dann
JSON.stringify
für mich funktioniert.Sie hätte hinzufügen müssen, die
JSON.stringify
wenn Sie versuchen, die Verkettung mit einem string-Objekt. Wenn Sieconsole.log(object)
sollte es ziemlich drucken Sie den Inhalt des ObjektsInformationsquelleAutor sreepurna
Ich brauchte einen Weg, um rekursiv drucken Sie das Objekt, das pagewil Antwort zur Verfügung gestellt (vielen Dank!). Ich aktualisiert es ein wenig, um auch eine Möglichkeit zum drucken bis zu einer bestimmten Ebene, und fügen Sie die Abstände so, dass es richtig eingerückt, basierend auf der aktuellen Ebene, dass wir in so dass es besser lesbar wird.
Verwendung:
InformationsquelleAutor megaboss98
(Dies wurde Hinzugefügt, um "meine Bibliothek" in GitHub)
Neu zu erfinden das Rad hier! Keine dieser Lösungen gearbeitet, die für meine situation. Also, ich schnell verarztet, bis pagewil Antwort. Dieser ist nicht für das drucken auf dem Bildschirm (über die Konsole oder die textfield-oder was auch immer). Es ist jedoch für den transport von Daten. Diese version scheint die Rückkehr ein sehr ähnliches Ergebnis wie bei der
toSource()
. Ich habe nicht versuchtJSON.stringify
, aber ich nehme an, dies ist über die gleiche Sache. Das Ergebnis dieser Funktion ist ein gültiges Javascript-Objekt Erklärung.Ich würde nicht zweifeln, wenn so etwas war schon auf SO irgendwo, aber es war einfach kürzer zu machen, als zu verbringen, während die Suche Vergangenheit Antworten. Und da diese Frage war mein top-Treffer auf google, wenn ich suchte über diese; ich dachte, man es hier vielleicht auch anderen helfen.
Jedenfalls ergibt sich aus dieser Funktion wird eine string-Darstellung des Objekts, auch wenn ein Objekt eingebettete Objekte und arrays, und auch wenn diese Objekte oder arrays haben noch weitere eingebettete Objekte und arrays. (Ich habe gehört, Sie trinken mag? So, ich motzt Ihr Auto mit einem Kühler. Und dann motzt Ihr Kühler mit einem Kühler. So, Ihr Kühler trinken kann, während Ihr cool sein.)
Arrays gespeichert sind, mit
[]
statt{}
und so dont haben Schlüssel/Wert-Paare, nur Werte. Wie bei normalen arrays. Daher bekommen Sie geschaffen, wie zum Beispiel arrays tun.Auch, alle-string (einschließlich des key-Namen) angegeben sind, ist dies nicht notwendig, es sei denn, diese Saiten haben spezielle Zeichen (z.B. ein Leerzeichen oder ein Schrägstrich). Aber ich hatte nicht das Gefühl, wie die Detektion dieser einfach zu entfernen, einige Zitate, die sonst noch gut funktionieren.
Dieser string kann dann mit
eval
oder einfach nur dumping es in einem var-thru-string-manipulation. So, neu zu erstellen, Ihr Objekt wieder aus dem text.Lassen Sie mich wissen, wenn ich habe alles vermasselt, funktioniert gut in meinen Tests. Außerdem ist die einzige Möglichkeit die ich mir vorstellen könnte zu erkennen geben
array
war zu prüfen, oblength
. Da Javascript wirklich speichert arrays als Objekte, ich kann nicht wirklich überprüfen Sie für den Typarray
(es gibt keine solchen!). Wenn jemand weiß, einen besseren Weg, ich würde lieben, es zu hören. Weil, wenn Ihr Objekt hat eine Eigenschaft namenslength
dann diese Funktion irrtümlich behandeln, als ein array.EDIT: Hinzugefügt check für null-Objekte bewertet. Dank Brock Adams
EDIT: Unten ist der Feste Funktion, um drucken zu können, unendlich rekursiven Objekte. Dieser druckt nicht das gleiche wie
toSource
von FF, weiltoSource
drucken die unendliche Rekursion zu einer Zeit, wo, wie, diese Funktion wird es töten sofort. Diese Funktion läuft langsamer als der obige, so dass ich bin das hinzufügen es hier anstelle der Bearbeitung der oben genannten Funktion, als seinen nur erforderlich, wenn Sie planen, um Objekte übergeben, die den link zurück zu sich selbst, irgendwo.Test:
Ergebnis:
HINWEIS: Sie Versuchen, zu drucken
document.body
ist ein schreckliches Beispiel. Zum einen, FF druckt nur eine leere string-Objekt bei VerwendungtoSource
. Und bei der Verwendung der Funktion oben, FF stürzt aufSecurityError: The operation is insecure.
. Und Chrome stürzen aufUncaught RangeError: Maximum call stack size exceeded
. Klar,document.body
war nicht dazu gedacht, in eine Zeichenfolge konvertiert werden. Weil Ihr entweder zu groß, oder gegen die Sicherheits-policy für den Zugriff auf bestimmte Eigenschaften. Es sei denn, ich etwas Durcheinander hier oben, sagen Sie!ObjToSource(document.body)
zum Beispiel.ok, ich fand das Problem. Ich war keine null-Objekte bewertet. Das ist jetzt behoben. Aber Sie kann immer noch nicht tun
ObjToSource(document.body)
weil eine unendliche Rekursion. Auchdocument.body.toSource()
im FireFox gibt ein leeres Objekt.Es jetzt seinen festen für eine unendliche Rekursion, jedoch
document.body
ist noch nicht gedruckt. Siehe HINWEIS.document.body
war nur eine Verknüpfung, um zu zeigen, einige große Probleme. Sie haben jetzt behoben, die schlimmsten von denen, und ich habe bereits von Ihnen positiv bewertet werden. (Obwohl, ich glaube, dass ein anderer Ansatz könnte der Griffdocument.body
. Die meisten Antworten hier nicht gut tun würde, gegen ihn.)Gut, wenn du (oder jemand anderes) irgendwelche Ideen, wie man an der Tatsache, dass ein so großes Objekt füllt den stack während der Rekursion oder umgehen von Sicherheitsbeschränkungen. Ich würde es gerne hören. Vielen Dank für die Abstimmung!
InformationsquelleAutor Pimp Trizkit
Ich benutze immer
console.log("object will be: ", obj, obj1)
.auf diese Weise brauche ich nicht zu tun, der workaround mit stringify mit JSON.
Alle Eigenschaften des Objekts erweitert werden, schön.
InformationsquelleAutor nils petersohn
Der einfachste Weg:
Oder mit einer Nachricht:
Das erste Objekt, das Sie übergeben können, enthalten ein oder mehrere format-Bezeichner. Ein Formatbezeichner ist, bestehend aus dem Prozentzeichen (%) gefolgt von einem Buchstaben, der angibt, die Formatierung zu übernehmen.
Mehr Formatbezeichner
console.xxx()
Optionen! Danke.InformationsquelleAutor 3DRobert
Ich denke, die beste Lösung ist, um durch die Objekte Schlüssel, und dann durch die Objekte Werte, wenn Sie wirklich wollen, um zu sehen, was das Objekt hält...
In diesen Beispielen, yourObj definiert das Objekt, das Sie untersuchen möchten.
Wird es ausgegeben wird dann sowas :
(Bild oben: die Schlüssel/Werte im Objekt gespeichert ist)
Gibt es auch diese neue option, wenn Sie ECMAScript 2016 oder neuer:
Wird dadurch ordentlich Leistung :
Die Lösung, die schon in einer vorherigen Antwort:
console.log(yourObj)
zeigt zu viele Parameter und ist nicht die benutzerfreundlichste Art der Anzeige der Daten, die Sie wollen. Das ist, warum ich empfehle die Protokollierung Tasten und dann die Werte einzeln.Next up :
Jemand in einem früheren Kommentar vorgeschlagen, dieses, aber es nie für mich gearbeitet. Wenn es funktioniert für jemand anderes auf einen anderen browser oder so ist, dann Hut ab! Ill noch den code hier zur Referenz!
Ausgegeben wird so etwas auf der Konsole :
Endlich, ich am wenigsten mag:
NB: dies ist der defacto Art zu zeigen, den Inhalt eines Objekts
produzieren so etwas wie :
nicht sicher, ich verstehe den Kommentar, aber ich habe unterschiedliche Namen für Objekte, die sollten einen Namen haben. Objekt war nicht griffig genug.
InformationsquelleAutor Max Alexander Hanna
wo
object
ist Ihr Objektoder Sie können diese in den chrome dev-tools "Konsole" - tab:
console.log(object);
vielen Dank für deine Antwort, es hat mich inspiriert, dies zu tun:
console.log(Object.keys(object));
obwohl ich weiß, dass nur druckt die Eigenschaften keys, es ist genug, um mich für meine Zwecke 😉InformationsquelleAutor user3632930
Davon ausgehen Objekt
obj = {0:'John', 1:'Foo', 2:'Bar'}
Print-Objekt Inhalt
Ausgabe der Konsole (Chrome DevTools) :
Hoffe, das hilft!
InformationsquelleAutor bishop
Hier ist ein Weg, es zu tun:
Im Rahmen des Chrome-dev-tool, google hatte diese erwähnt in diesem link. unter Bezugnahme auf den Abschnitt "String-Ersetzung und Formatierung"
Ich sah es in mdn docs.
So unterschätzt Antwort, das ist genau das, was ich suchte.
InformationsquelleAutor Anton Harniakou
Andere Art und Weise der Anzeige von Objekten in der Konsole ist mit
JSON.stringify
. Kasse die unten Beispiel:InformationsquelleAutor Kean Amaral
Verwenden Sie einfach
Beispiel
Oder
Beachten Sie auch in javascript-Funktionen sind als Objekte.
Eigentlich Sie weisen neue Eigenschaft, wie diese
InformationsquelleAutor Raza Rafaideen
Javascript-Funktion
Drucken Objekt
über print_r in Javascript
InformationsquelleAutor Mukesh Chapagain
Kleine Helfer-Funktion, die ich immer in meinen Projekten für eine einfache, schnelle Debuggen über die Konsole.
Inspiration genommen von Laravel.
Nutzung
dd(123.55);
Ausgänge:InformationsquelleAutor George Kagan
ich verwendet pagewil die print-Methode, und es funktionierte sehr gut.
hier ist meine etwas erweiterte version mit (sloppy) Einzüge und verschiedene prop/ü-Trennzeichen:
InformationsquelleAutor bitless
Weitere Modifikation des pagewils code... seine nicht ausdrucken, alles andere als Zeichenfolgen und lässt die Zahl und boolean Felder leer und ich der festen Tippfehler auf der zweiten typeof nur innerhalb der Funktion erstellt von megaboss.
InformationsquelleAutor ppetree
Hier die Funktion.
Kann es zeigen Objekt mit tab Einrücken mit der Lesbarkeit.
InformationsquelleAutor Juho Sung
Ich lieber mit
console.table
für immer klar-Objekt-format, so stellen Sie sich vor Sie haben in diesem Objekt:Und Sie werden Sie sehen, eine saubere und gut lesbare Tabelle wie unten:
InformationsquelleAutor Alireza