【发布时间】:2014-10-02 17:37:14
【问题描述】:
有一个Node.js生成的Object,我用console.log的时候是这样的:
{ dataValues: { a: 1, b: 2 }, fn1: function(){}, fn2: function(){} }
当我使用JSON.stringify 时,它返回这个字符串:
{"a":1,"b":1}
我查了mozilla开发者中心,发现this:
所有symbol-keyed属性都将被完全忽略,即使在使用替换功能时也是如此。
我认为 'dataValues' 必须是 'symbol-keyed' 属性,但 'symbol-keyed' 是什么意思?
顺便说一句,我使用sequelizejs ORM 库来生成这个对象。
【问题讨论】:
-
"{ 'a': 1, 'b': 1}"是无效的 JSON。我看不出JSON.stringify是如何产生的。你是怎么用的? -
对不起,字符串错误,我已经修改为正确的格式。
-
@TomWan:如果你在引用的内容上使用
JSON.stringify,你不会得到{"a":1,"b":1},你会得到{"dataValues":{"a":1,"b":2}};证明:jsbin.com/ralova/1 -
我写了 3 年的 JavaScript,我知道在浏览器中是不可能的,它发生在 NodeJS 中,你可以用 NodeJS 和 SequelizeJS 编写一些代码并从 MySQL 中获取一些数据,看看它是如何通过 Promise 返回的.
标签: javascript stringify sequelize.js