Javascript node.js未将JSON正确写入文件

Javascript node.js未将JSON正确写入文件,javascript,json,node.js,Javascript,Json,Node.js,我正在将JSON对象写入从twitter api流式传输的文件中。它们正确地登录到控制台,看起来像JSON对象;但是,当我使用命令时: fs.appendFile("./tweets.json", tweet) 所有写入文件的操作如下所示: [object Object] 这是怎么回事?当我将对象tweet写入控制台时,这是输出: { created_at: 'Tue Mar 17 22:12:41 +0000 2015', id: 577955743997018100,

我正在将JSON对象写入从twitter api流式传输的文件中。它们正确地登录到控制台,看起来像JSON对象;但是,当我使用命令时:

fs.appendFile("./tweets.json", tweet)
所有写入文件的操作如下所示:

[object Object]
这是怎么回事?当我将对象tweet写入控制台时,这是输出:

 { 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);

这是因为appendFile将调用toString,它将打印您看到的内容,因此您需要将对象转换为JSON字符串

stringify的后两个参数将漂亮地打印JSON对象,以便您可以查看并手动编辑它。如果您喜欢紧凑格式,只需将其删除。

更改此行

fs.appendFile("./tweets.json", tweet);

这是因为appendFile将调用toString,它将打印您看到的内容,因此您需要将对象转换为JSON字符串

stringify的后两个参数将漂亮地打印JSON对象,以便您可以查看并手动编辑它。如果您更喜欢压缩格式,只需将其删除。

fs.appendFile需要一个字符串。但你给它一个对象。您只需将对象转换为字符串。调用JSON.stringify

如果fs.appendFile未接收到字符串,则会尝试将参数转换为字符串。而且做得很糟糕。

fs.appendFile需要一个字符串。但你给它一个对象。您只需将对象转换为字符串。调用JSON.stringify

如果fs.appendFile未接收到字符串,则会尝试将参数转换为字符串。如果你在文件中看到[object object],那么tweet不是一个包含JSON格式数据的字符串,而是一个常规javascript对象。控制台输出:{created_at:'Tue Mar 17 22:12:41+0000 2015'清楚地表明它不是JSON。在JSON格式的字符串中,键需要用双引号引起来。如果您在文件中看到[object object object],那么tweet不是一个包含JSON格式数据的字符串,而是一个常规javascript对象。控制台输出:{created_at:'Tue Mar 17 22:12:41+0000 2015'清楚地表明它不是JSON。在JSON格式的字符串中,密钥需要用双引号引起来。
fs.appendFile("./tweets.json", JSON.stringify(tweet))