Javascript node.js未将JSON正确写入文件
我正在将JSON对象写入从twitter api流式传输的文件中。它们正确地登录到控制台,看起来像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,
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))