Запись объекта JSON в файл JSON с помощью fs.writeFileSync

Я пытаюсь записать объект JSON в файл JSON. Код выполняется без ошибок, но вместо того, чтобы сам объект записывается, все, что записывается в файл JSON:

[object Object]

это код, который на самом деле делает запись:

fs.writeFileSync('../data/phraseFreqs.json', output)

'output' является объектом JSON, и файл уже существует. Пожалуйста, дайте мне знать, если требуется дополнительная информация.

3 ответов


Я не думаю, что вы должны использовать Synchronous - это хорошо, Asynchronously запись данных в файл лучше также stringify output Если object.

Примечание: Если output является строкой, затем укажите кодировку. и помните 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!");
}); 

вам нужно stringify объект.

fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));

сделать JSON человеком читаемым с помощью:

fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));