2011-03-23 32 views
13

爲了調試我想用JSON.stringify(myobject)序列化javascript對象。但是,這給出:繞行ERROR在執行JSON.stringify()時將循環結構轉換爲JSON?

TypeError: Converting circular structure to JSON 

有沒有辦法來防止這種情況,例如通過修剪輸出樹?

一些更多的背景:

我想收集不同對象的一些數據,看看到底是怎麼回事,爲什麼一個功能適用於一個情況,但不是另一個。通過比較產出,我希望能夠找到差異,這就解釋了爲什麼它不能在「另一種」情況下工作。 我正在使用jquery,我的調試馬被稱爲chrome。如果有更好的選擇來做這種類型的調試活動,我也非常感興趣!

乾杯, jeroen。

回答

9

JSON.stringify(OBJ)不支持循環引用,如:

var car = {} 
car.myself = car; 
JSON.stringify(car); 

然而dojox.json.ref不支持循環引用,如果你想探索另一種選擇。但是,如果你的目的是嚴格的調試,我建議使用內置的瀏覽器調試器,如Chrome的,IE瀏覽器或Firebug(對於Firefox)。

7

你可以使用console.log()和chrome的javascript調試控制檯,它將很高興地讓你檢查你的對象,即使它有循環引用。

2

對於node.js json-ref是Mike Lewis建議的dojox.json.ref函數的一個不錯的輕量級替代方案。