繁体   English   中英

node.js无法将JSON正确写入文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM