我有一个包含循环引用的对象,我想看一下它的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忽略了作为函数的任何属性,但如果我不需要,我宁愿不这样做.