相关疑难解决方法(0)

在具有循环依赖关系的大对象上调用JSON.stringify时出现"太多递归"错误

我有一个包含循环引用的对象,我想看一下它的JSON表示.例如,如果我构建此对象:

var myObject = {member:{}};
myObject.member.child = {};
myObject.member.child.parent = myObject.member;
Run Code Online (Sandbox Code Playgroud)

并尝试打电话

JSON.stringify(myObject);
Run Code Online (Sandbox Code Playgroud)

我得到错误"太多的递归",这并不奇怪."child"对象具有对其"parent"的引用,而父对象具有对其子对象的引用.JSON表示不必非常准确,因为我只是将它用于调试,而不是将数据发送到服务器或将对象序列化为文件或类似的东西.有没有办法告诉JSON.stringify只是忽略某些属性(在这种情况下parent是子对象的属性),所以我会得到:

{
    "member" : {
        "child" : {}
    }
}
Run Code Online (Sandbox Code Playgroud)

我能想到的最接近的是使用getChild()getParent()方法而不仅仅是成员,因为JSON.stringify忽略了作为函数的任何属性,但如果我不需要,我宁愿不这样做.

javascript json circular-dependency firefox-addon

5
推荐指数
2
解决办法
6929
查看次数