我有一個包含循環引用的對象,我想查看它的JSON表示。例如,如果我建立這個對象:在循環依賴的大型對象上調用JSON.stringify時出現「遞歸太多」錯誤
var myObject = {member:{}};
myObject.member.child = {};
myObject.member.child.parent = myObject.member;
,並嘗試調用
JSON.stringify(myObject);
我得到的錯誤「太多遞歸」,這並不奇怪。 「子」對象具有對其「父」的引用,並且父對象具有對其子的引用。 JSON表示不一定非常準確,因爲我只是將它用於調試,而不是將數據發送到服務器或將對象序列化爲文件或類似的東西。有沒有辦法告訴JSON.stringify只是忽略某些屬性(在這種情況下,子對象的parent
屬性),所以我會得到:
{
"member" : {
"child" : {}
}
}
我能想到的最接近的是使用getChild()
和getParent()
方法,而不僅僅是成員,因爲JSON.stringify忽略任何屬性是函數,但我寧願不這樣做,如果我不必。
都已經提供了還在給我「太多遞歸」錯誤做法的 - 也許有一些其他的奇怪的依賴,我沒有看到。 – MatrixFrog 2010-12-08 00:23:56