一个JSON文件,我想写一个JSON对象的JSON文件。该代码的执行没有错误,但不是那个被写进JSON文件本身被写入的对象,都是:写作JSON对象与fs.writeFileSync
[object Object]
这是实际执行的写代码:
fs.writeFileSync('../data/phraseFreqs.json', output)
“输出'是一个JSON对象,并且该文件已经存在。请让我知道是否需要更多信息。
一个JSON文件,我想写一个JSON对象的JSON文件。该代码的执行没有错误,但不是那个被写进JSON文件本身被写入的对象,都是:写作JSON对象与fs.writeFileSync
[object Object]
这是实际执行的写代码:
fs.writeFileSync('../data/phraseFreqs.json', output)
“输出'是一个JSON对象,并且该文件已经存在。请让我知道是否需要更多信息。
我不认为你应该使用Synchronous
是好的,Asynchronously
将数据写入文件也较好字符串化的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!");
});
如果是在一个简短的脚本或其他东西,同步是好的。如果它是服务器请求的一部分,那么它应该是异步的。 –
不一定,I/O密集型进程应异步发,但根据短剧本的复杂性,你可能会选择在同步。 – akinjide
这不是问题的答案。 –
您需要将对象串联起来。
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));
欢迎来到SO,在回答问题之前,请尝试查看现有答案。如果你的答案已经被提出,请改为提供答案。请参阅[社区指南](https://stackoverflow.com/help/how-to-answer)撰写一个好的答案。 – LightBender
我想补充到akinjide的回答。
我相信,你可能有疑惑了这一点,因为,执行console.log(JSON_OBJECT)将打印JSON字符串到控制台。但是,当你将其写入文件时,它确实写入[object Object]
。这是因为,console.log(object)会在将JSON对象实际写入控制台之前将其隐式转换为字符串,而FS.writeFile()则不会。希望这有助于你的理解。
使JSON人类可读具有:
fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output,null,4));
fs.writeFileSync( '../数据/ phraseFreqs.json',JSON.stringify(输出)) – Daniel