使用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));