node.js没有正确地将JSON写入文件

abg*_*don 0 javascript json node.js

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

fs.appendFile("./tweets.json", tweet)
Run Code Online (Sandbox Code Playgroud)

写入文件的所有内容如下:

[object Object]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?当我将对象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' }
Run Code Online (Sandbox Code Playgroud)

什么是[object Object],为什么写这个?

uno*_*obf 6

改变这一行

fs.appendFile("./tweets.json", tweet);
Run Code Online (Sandbox Code Playgroud)

fs.appendFile("./tweets.json", JSON.stringify(tweet, null, ' '));
Run Code Online (Sandbox Code Playgroud)

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

第二个两个参数stringify将打印JSON对象,以便您可以查看它并手动编辑它.如果您更喜欢紧凑格式,只需将它们保留下来即可.