使用 fs.writeFileSync 将 JSON 对象写入 JSON 文件

新手上路,请多包涵

我正在尝试将 JSON 对象写入 JSON 文件。代码执行没有错误,但不是写入对象的内容,而是写入 JSON 文件的所有内容是:

 [object Object]

这是实际编写的代码:

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

‘output’ 是一个 JSON 对象,并且该文件已经存在。如果需要更多信息,请告诉我。

原文由 Romulus3799 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

您需要对对象进行字符串化。

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

原文由 Kamal 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为您不应该使用同步方法,异步将数据写入文件最好也将 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!");
});

添加了将数据写入文件的同步方法,但请考虑您的用例。 异步执行与同步执行,究竟是什么意思?

 const fs = require('fs');
const content = JSON.stringify(output);

fs.writeFileSync('/tmp/phraseFreqs.json', content);

原文由 Akinjide 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题