3

我有一个 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: [] ]
[]

我不知道为什么这不能正确转换

4

1 回答 1

9

在这一行,您初始化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'] = [];
于 2012-12-08T23:10:59.720 回答