Ich mache eine console.log-Anweisung in meinem Javascript, um ein Javascript-Objekt zu protokollieren. Ich frage mich, ob es einen Weg gibt, sobald das erledigt ist - das Objekt als Javascript-Code zu kopieren. Was ich versuche zu tun, ist ein Objekt zu konvertieren, das mit ajax erstellt wurde, um einen XML-Feed in ein statisches Javascript-Objekt zu analysieren, sodass eine Datei lokal ohne Server ausgeführt werden kann. Ich habe einen Screenshot des Objekts im Chrome Inspector-Fenster eingefügt, damit Sie sehen können, was ich versuche.
Klicken Sie mit der rechten Maustaste auf ein Objekt in der Chrome-Konsole und wählen Sie Store as Global Variable
aus dem Kontextmenü. Es wird etwas wie temp1
als Variablenname zurückgegeben.
Chrome verfügt auch über eine copy()
-Methode. Daher sollte copy(temp1)
in der Konsole dieses Objekt in die Zwischenablage kopieren.
Hinweis zu rekursiven Objekten: Wenn Sie versuchen, ein rekursives Objekt zu kopieren, erhalten Sie [object Object]
. Dies ist zu erwarten.
Versuchen Sie JSON.stringify()
. Kopieren Sie die resultierende Zeichenfolge.
Sie können ein Objekt mit copy in Ihre Zwischenablage kopieren (JSON.stringify (Object_Name)); in der Konsole.
ZB: - Kopieren Sie den folgenden Code in Ihre Konsole und drücken Sie ENTER. Versuchen Sie nun, es an einer anderen Stelle (Strg + V) einzufügen, und Sie erhalten {"Name": "Daniel", "Alter": 25}
var profile = {
name: "Daniel",
age: 25
};
copy(JSON.stringify(profile));
Sie können dies nun in Chrome durchführen, indem Sie mit der rechten Maustaste auf das Objekt klicken und "Als globale Variable speichern" auswählen: http://www.youtube.com/watch?v=qALFiTlVWdg
Folgen Sie den folgenden Schritten:
JSON.stringify(temp1)
.Wenn Sie das Objekt über eine Anfrage gesendet haben, können Sie es über die Registerkarte Chrome -> Netzwerk kopieren.
Payload anfordern -> Quelle anzeigen
Die Verwendung von "Als globale Variable speichern" funktioniert zwar, es wird jedoch nur die letzte Instanz des Objekts abgerufen, nicht der Moment, in dem das Objekt protokolliert wird (da Sie wahrscheinlich Änderungen am Objekt vergleichen möchten, sobald sie stattfinden). Um das Objekt zum genauen Zeitpunkt der Änderung zu erhalten, verwende ich Folgendes ...
function logObject(object) {
console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}
Nenne es so ...
logObject(puzzle);
Möglicherweise möchten Sie die .replace (/./g, ",\n") -Regex entfernen, wenn Ihre Daten zufällig ein Komma enthalten.
Dies sollte helfen, tiefe Objekte zu stringifizieren, indem die rekursiven Objekte Window
und Node
weggelassen werden.
function stringifyObject(e) {
const obj = {};
for (let k in e) {
obj[k] = e[k];
}
return JSON.stringify(obj, (k, v) => {
if (v instanceof Node) return 'Node';
if (v instanceof Window) return 'Window';
return v;
}, ' ');
}
Klicken Sie mit der rechten Maustaste auf die Daten, die Sie speichern möchten
So,. Ich hatte dieses Problem. außer ich habe [Objekt Objekt]
Ich bin sicher, dass Sie dies mit Rekursion tun könnten, aber das hat für mich funktioniert:
Folgendes habe ich in meiner Konsole gemacht:
var object_that_is_not_shallow = $("all_obects_with_this_class_name");
var str = '';
object_that_is_not_shallow.map(function(_,e){
str += $(e).html();
});
copy(str);
Dann fügen Sie sie in Ihren Editor ein.