2016-04-11 1 views
0

ich ein JavaScript-Objekt, das wie folgt aussieht:Angular toJson ist die Serialisierung nicht alle Eigenschaften

var Person = function() { 

    var _name = ""; 

    this.Age = 0; 

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

Wenn ich die Funktion angular.toJson verwende sie die Eigenschaft Namen in dem resultierenden JSON-String überspringen:

{ "Alter": 17}

Wie bekomme ich (kann ich) angular.toJson, um die Name-Eigenschaft in die JSON-Zeichenfolge aufzunehmen? Wenn ich das nicht kann, was sind meine Alternativen?

Antwort

2

Nur aufzählbare Eigenschaften können in JSON serialisiert werden. Standardmäßig macht Object.defineProperty Eigenschaften nicht aufzählbar. Hier ist, wie man es aufzählbar macht.

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

Brilliant! Vielen Dank! –

Verwandte Themen