[英]node.js not writing JSON to file correctly
我正在将JSON对象写入从twitter api流式传输的文件中。 它们正确地登录到控制台,看起来像JSON对象。 但是,当我使用命令时:
fs.appendFile("./tweets.json", tweet)
写入文件的内容如下:
[object Object]
这里发生了什么? 当我将对象鸣叫写入控制台时,这是输出:
{ created_at: 'Tue Mar 17 22:12:41 +0000 2015',
id: 577955743997018100,
id_str: '577955743997018112',
text:
......tons more stuff....
filter_level: 'low',
lang: 'en',
timestamp_ms: '1426639434951' }
什么是[object Object],为什么写呢?
更改此行
fs.appendFile("./tweets.json", tweet);
至
fs.appendFile("./tweets.json", JSON.stringify(tweet, null, ' '));
这是因为appendFile将调用toString()
来打印您看到的内容,因此您需要将对象转换为JSON字符串。
stringify
两个参数将漂亮地打印JSON对象,以便您可以查看并手动编辑它。 如果您更喜欢紧凑格式,只需将其省略。
fs.appendFile
需要一个字符串。 但是你给它一个对象。 您需要做的就是将对象转换为字符串。 调用JSON.stringify
。
fs.appendFile("./tweets.json", JSON.stringify(tweet))
如果fs.appendFile
没有收到字符串,则它将尝试将参数转换为字符串。 而且做得不好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.