obj = { x:"a", y: "b" };
obj.child = obj;
try{
json = JSON.stringify(obj);
alert(json)
}catch(e){
alert(e);
}
如果调用上述代码,汇报JSON.stringify报cyclic object value错误,
而在程序开发的过程中也会出现意外的结果,
为了解决这个问题有两种办法
第一种
obj = { x:"a", y: "b" };
obj.child = obj;
alert(print(obj));
function print(obj){
try{
var seen = [];
json = JSON.stringify(obj, function(key, val) {
if (typeof val == "object") {
if (seen.indexOf(val) >= 0) return;
seen.push(val)
}
return val;
});
return json;
}catch(e){
return e;
}
}
第二种
如果非想实现这种结果,那么拷贝原来的对象到新的对象中就行了
obj = { x:"a", y: "b" };
var newobj = {};
newobj.x = obj.x;
newobj.y = obj.y;
obj.child = newob;
obj.child = obj;
try{
json = JSON.stringify(obj);
alert(json)
}catch(e){
alert(e);
}
如果调用上述代码,汇报JSON.stringify报cyclic object value错误,
而在程序开发的过程中也会出现意外的结果,
为了解决这个问题有两种办法
第一种
obj = { x:"a", y: "b" };
obj.child = obj;
alert(print(obj));
function print(obj){
try{
var seen = [];
json = JSON.stringify(obj, function(key, val) {
if (typeof val == "object") {
if (seen.indexOf(val) >= 0) return;
seen.push(val)
}
return val;
});
return json;
}catch(e){
return e;
}
}
第二种
如果非想实现这种结果,那么拷贝原来的对象到新的对象中就行了
obj = { x:"a", y: "b" };
var newobj = {};
newobj.x = obj.x;
newobj.y = obj.y;
obj.child = newob;