javascript - 对象到 node.js 中的 json 字符串

标签 javascript json node.js

我有一个关于 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() 结果中(即,您会在 console.log(chat.messages )


无论如何,要修复,请将 chat.messages 声明为一个对象:

chat.messages = {};
chat.messages['en'] = [];
chat.messages['fr'] = [];

关于javascript - 对象到 node.js 中的 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782863/

相关文章:

javascript - 在转换后的 div 中防止图像失真?

我的 Spring MVC 3.2 应用程序中的 JSON 映射仅适用于我的一种方法

json - 如何根据搜索查询从stackoverflow API 获取问题列表?

node.js - For 循环中跳过的循环值

javascript - 在javascript中将复杂类型的字符串数组转换为json

javascript - Jquery下拉菜单使用toggle和hover()问题

javascript - Shiny :insertUI 之前使用 removeUI 删除了一个 id

javascript - 如何在没有 eval() 的情况下通过 ExtJS AJAX 调用执行 Javascript,就像使用 JQuery 一样?

javascript - 无法检索 Json 信息

Node.js 和 Backbone.marionette 初始 View