我有一个 node.js 反对 json 字符串的问题
var chat = {};
chat.messages = [];
chat.messages['en'] = [];
chat.messages['fr'] = [];
console.log(chat.messages)
console.log(JSON.stringify(chat.messages));
我有
[ en: [], fr: [] ]
[]
我不知道为什么这不能正确转换
我有一个 node.js 反对 json 字符串的问题
var chat = {};
chat.messages = [];
chat.messages['en'] = [];
chat.messages['fr'] = [];
console.log(chat.messages)
console.log(JSON.stringify(chat.messages));
我有
[ en: [], fr: [] ]
[]
我不知道为什么这不能正确转换
在这一行,您初始化chat.messages
为一个空数组:
chat.messages = [];
在这里,您将其用作对象:
chat.messages['en'] = [];
chat.messages['fr'] = [];
这些行实际上在数组实例上设置属性。奇怪的是 Node 会在正常.toString()
结果中包含这些属性(即,您会看到 set 属性作为console.log(chat.messages)
.
无论如何,要修复,请声明chat.messages
为对象:
chat.messages = {};
chat.messages['en'] = [];
chat.messages['fr'] = [];