JSON.stringify方法中的循环引用异常

时间:2014-05-19 05:31:27

标签: javascript html json object

我尝试使用JSON.stringify方法对对象进行字符串化,但是我得到了循环引用异常。

我使用了代码片段,如下面的scenorio。

var john = new Object();
var mary = new Object();
john.sister = mary;
mary.brother = john;

// This line causes a runtime error.
var error = JSON.stringify(john);

参考链接

http://msdn.microsoft.com/en-us/library/ie/cc836474(v=vs.94).aspx

在此链接中,解决方案是删除循环引用。但在可能的情况下,我想使用像上面的代码片段。有没有其他方法可以解决这个问题。

2 个答案:

答案 0 :(得分:2)

上面的代码是将你的对象添加到死锁中(假设John正在等待Mary和Mary正在等待John)。因此,当您尝试序列化它时,它会显示循环依赖性错误。

上述情况似乎不可能,因为父/子正在创建双向关系。您需要删除一个depadancy的引用

答案 1 :(得分:0)

var peoples=[],person={};
person['name']='Adam';
person['sex']=1;
person['generation']=0;
person['tree']=[0,2,4];
peoples[peoples.length]=person;

person={};
person['name']='Eve';
person['sex']=2;
person['generation']=0;
person['tree']=0;
peoples[peoples.length]=person;

现在你有一个像sql数据库这样的对象数组。 亚当与人民结婚[2]并建造新树4.亚当和夏娃是兄弟姐妹,因为他们有相同的世代和树数。起乱,但没有办法。