Angular toJson没有序列化所有属性

时间:2016-04-11 19:39:20

标签: javascript angularjs json

我有一个javascript对象,看起来像:

var Person = function() {

    var _name = "";

    this.Age = 0;

    Object.defineProperty(this, "Name", {
        get: function () { return _name; },
        set: function (value) { _name = value; }
    });
}

当我使用angular.toJson函数时,它会跳过生成的json字符串中的Name属性:

{"年龄" 17}

我如何(我可以)获取angular.toJson以在JSON字符串中包含Name属性?如果我不能做到这一点,我的替代方案是什么?

1 个答案:

答案 0 :(得分:2)

只有可枚举的属性可以序列化为JSON。默认情况下,Object.defineProperty不会使属性可枚举。以下是如何使其可枚举。

Object.defineProperty(this, 'Name', {
  enumerable: true, // <--
  get: function() { return _name; },
  set: function(value) { _name = value; }
});