【发布时间】:2011-09-09 02:59:13
【问题描述】:
JSON.stringify() 适用于文字对象,例如:
var myObjectLiteral = {
a : "1a",
b : "1b",
c : 100,
d : {
da : "1da",
dc : 200
}
};
var myObjectLiteralSerialized = JSON.stringify(myObjectLiteral);
myObjectLiteralSerialized 已分配, "{"a":"1a","b":"1b","c":100,"d":{"da":"1da","dc":200}}" 正如预期的那样。
但是,如果我用这样的 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);
然后将 myObjectSerialized 设置为空字符串“”。
我认为原因是因为类版本最终成为实例化类的原型,这使得它的属性为原型“拥有”,而 JSON 只会对实例对象 myObject 拥有的道具进行字符串化。
有没有一种简单的方法可以将我的类转换为 JSON 字符串而无需编写大量自定义代码?
【问题讨论】:
-
那些不是属性,而是局部变量。
-
另外,函数声明没有尾随分号。
标签: javascript json serialization