小编Tom*_*nes的帖子

如何在Javascript中JSON.stringify用户定义的类?

JSON.stringify()适用于文字对象,例如:

var myObjectLiteral = {
    a : "1a",
    b : "1b",
    c : 100,
    d : {
        da : "1da",
        dc : 200
    }
};
var myObjectLiteralSerialized = JSON.stringify(myObjectLiteral); 
Run Code Online (Sandbox Code Playgroud)

myObjectLiteralSerialized被赋值,"{"a":"1a","b":"1b","c":100,"d":{"da":"1da","dc":200}}"as as预期.

但是,如果我用这样的ctor定义类,

    function MyClass() {
    var a = "1a";
    var b = "1b";
    var c = 100;
    var d = {
        da : "1da",
        dc : 200
    };
};


var myObject = new MyClass;
var myObjectSerialized = JSON.stringify(myObject);
Run Code Online (Sandbox Code Playgroud)

然后将myObjectSerialized设置为空字符串"".

我认为原因是因为类版本最终成为实例化类的原型,这使得它的属性由原型"拥有",而JSON将只对字符串化实例对象myObject所拥有的道具.

是否有一种简单的方法可以将我的类转换为JSON字符串,而无需编写一堆自定义代码?

javascript serialization json

3
推荐指数
1
解决办法
9542
查看次数

标签 统计

javascript ×1

json ×1

serialization ×1