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

我想写一个JSON文件的JSON对象。 代码执行没有错误,但是写入对象本身而不是写入JSON文件的所有内容是:

[object Object] 

这是写作的代码:

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

'output'是一个JSON对象,并且该文件已经存在。 请让我知道是否需要更多的信息。

我不认为你应该使用Synchronous是好的, Asynchronously写入数据到一个文件是更好的,如果它的一个object串化output

注意:如果output是一个string,则指定编码。 并记住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!"); }); 

你需要将对象串联起来。

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

我想添加到akinjide的答案。

我相信你可能对此感到困惑,因为console.log(JSON_Object)会把JSONstring打印到控制台。 但是当你把它写入一个文件时,它会写[object Object] 。 这是因为,console.log(object)会在将JSON对象实际写入控制台之前将其隐式转换为string,而FS.writeFile()则不会。 希望这有助于你的理解。

参考: 在Node.js中写入JSON到文件 – 节点FS

使json人类可读:

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