[英]JSON.stringify returning different values then a console.log
我正在尝试在 nodejs 中写入文件,但遇到了一个问题,我没有找到任何在线解决方案。
economy.people[member.id] = 0
fs.writeFile("./economy.json", JSON.stringify(economy, null, 2), (err) => {
if (err) throw err;
console.log(economy)
console.log(JSON.stringify(economy, null, 2))
console.log('The file has been saved!');
})
运行此代码时,将返回以下内容:
{ government: 1000, banks: [], people: [ '517854168229216256': 0 ] }
{
"government": 1000,
"banks": [],
"people": []
}
The file has been saved!
我想知道为什么JSON.stringify()
返回与console.log()
不同的东西,我可以做些什么来解决这个问题,使它们相同,并返回相同的值。
看起来economy.people
是一个数组,而不是 object。 将属性'517854168229216256'
设置为 0 实际上不会将该项目添加到数组中,因此JSON.stringify
忽略它。
但是,Javascript 中的 arrays 是 object 的一种类型,您可以在 ZA8CFDE6331BD49EB2AC96F891 上设置任何属性 console.log
将打印出这些属性,这就是为什么您在记录时看到该属性,但在字符串化时看不到的原因。 将人员更改为 object 而不是数组应该会给您预期的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.