589 Stimmen

Wie kann ich pretty-print JSON mit node.js?

Dieses Problem scheint gelöst zu sein, aber ich kann keine Lösung dafür finden.

Im Grunde lese ich eine JSON-Datei, ändere einen Schlüssel und schreibe das neue JSON in dieselbe Datei zurück. Alles funktioniert, aber ich verliere die JSON-Formatierung, also statt:

{
  name:'test',
  version:'1.0'
}

Ich bekomme

{name:'test',version:'1.1'}

Gibt es eine Möglichkeit, in Node.js zu schreiben gut formatierte JSON in eine Datei?

0 Stimmen

JSON.stringify zyklische Objekte verschluckt, und util.inspect erzeugt kein gültiges JSON :\ Ich habe keine [native] Lösung gefunden, um JSON in NodeJS schön zu drucken

1 Stimmen

@ThorSummoner: Das ist ein Problem mit JSON, nicht mit Node - JSON unterstützt von Haus aus keine zyklischen Referenzen. Es gibt eine Lösung hier, in einer anderen Frage .

30voto

Was ist damit?

console.table(object)

sample

5voto

jkonst Punkte 373

Eine andere Lösung wäre die Verwendung von Prettier zur Formatierung des JSON. Das folgende Beispiel verwendet den Parser "json", aber es könnte auch "json5" verwendet werden, siehe Liste der gültigen Parser .

const prettier = require("prettier");
console.log(prettier.format(JSON.stringify(object),{ semi: false, parser: "json" }));

-1voto

GMC Punkte 1

Wenn prettify ist Name-Wert-Paare auf neue Zeilen dann angeben Anzahl der Leerzeichen in stringify nicht für mich die einzige Sache, die für mich gearbeitet war

await fs.promises.writeFile('testdataattr.json',JSON.stringify(datatofile, null,'\r\n'),'utf8') ;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X