Ich versuche, ein JSON-Objekt in eine JSON-Datei zu schreiben. Der Code wird ohne Fehler ausgeführt. Statt jedoch das Objekt selbst zu schreiben, wird in die JSON-Datei nur Folgendes geschrieben:
[object Object]
Dies ist der Code, der das Schreiben tatsächlich ausführt:
fs.writeFileSync('../data/phraseFreqs.json', output)
'Ausgabe' ist ein JSON-Objekt und die Datei ist bereits vorhanden. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Sie müssen das Objekt stringifizieren.
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));
Ich denke nicht, dass Sie Synchronous
verwenden sollten, ist das Gute, Asynchronously
das Schreiben von Daten in eine Datei ist besser auch die output
Zeichenfolge, wenn es eine object
ist.
Hinweis: Wenn output
eine Zeichenfolge ist, geben Sie die Kodierung an und merken Sie sich auch die Optionen flag
:
const fs = require('fs');
const content = JSON.stringify(output);
fs.writeFile('/tmp/phraseFreqs.json', content, 'utf8', function (err) {
if (err) {
return console.log(err);
}
console.log("The file was saved!");
});
Eine synchrone Methode zum Schreiben von Daten in eine Datei wurde hinzugefügt. Beachten Sie jedoch Ihren Anwendungsfall. Asynchrone vs. synchrone Ausführung, was bedeutet das wirklich?
const fs = require('fs');
const content = JSON.stringify(output);
fs.writeFileSync('/tmp/phraseFreqs.json', content);
json für Menschen lesbar machen mit:
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));
Beim Senden von Daten an einen Webserver müssen die Daten eine Zeichenfolge sein ( hier ). Sie können ein JavaScript-Objekt mit JSON.stringify()
in einen String konvertieren. Hier ist ein Arbeitsbeispiel:
var fs = require('fs');
var originalNote = {
title: 'Meeting',
description: 'Meeting John Doe at 10:30 am'
};
var originalNoteString = JSON.stringify(originalNote);
fs.writeFileSync('notes.json', originalNoteString);
var noteString = fs.readFileSync('notes.json');
var note = JSON.parse(noteString);
console.log(`TITLE: ${note.title} DESCRIPTION: ${note.description}`);
Ich hoffe es könnte helfen.