java 嵌套对象序列化_在javascript中将复杂的,嵌套的,用户定义的对象序列化为字符串...

是的,所以's kind of like you'重新序列化对象数据,而不是类数据 . 变量仍然存在,但关于类的元数据(即方法)没有被保留 .

一个解决方案可能是serialijse .

serialijse是一个简单的JavaScript持久性框架,它克服了JSON持久性的两个主要限制:serialijse很好地处理循环对象 . serialijse在反序列化时保留对象类 .

他们的第三个例子说明你的情况

// serializing an object with cyclic dependencies

function testing_javascript_serialization_objects_with_cyclic_dependencies() {

var Mary = { name: "Mary", friends: [] };

var Bob = { name: "Bob", friends: [] };

Mary.friends.push(Bob);

Bob.friends.push(Mary);

var group = [ Mary, Bob];

console.log(group);

// testing serialization using JSON.stringify/JSON.parse

try {

var jstr = JSON.stringify(group);

var jo = JSON.parse(jstr);

console.log(jo);

} catch (err) {

console.log(" JSON has failed to manage object with cyclic deps");

console.log(" and has generated the following error message", err.message);

}

// now testing serialization using serialijse serialize/deserialize

var str = s.serialize(group);

var so = s.deserialize(str);

console.log(" However Serialijse knows to manage object with cyclic deps !");

console.log(so);

assert(so[0].friends[0] == so[1]); // Mary's friend is Bob

}

testing_javascript_serialization_objects_with_cyclic_dependencies();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值