规避错误在执行JSON.stringify()时将循环结构转换为JSON?

dr *_*rry 13 javascript serialization json

为了调试,我想用JSON.stringify(myobject)序列化javascript对象.但这给了:

TypeError: Converting circular structure to JSON
Run Code Online (Sandbox Code Playgroud)

有没有办法防止这种情况,例如修剪输出树?

更多背景:

我想收集关于不同对象的一些数据,看看发生了什么,以及为什么一个功能适用于一种情况而不适用于另一种情况.通过比较输出,我希望能够找到差异,这解释了为什么它不在"另一种"情况下工作.我正在使用jquery,我的调试马叫做chrome.如果有更好的替代方法来进行这种类型的调试活动,我也非常感兴趣!

干杯,jeroen.

Mik*_*wis 9

JSON.stringify(obj)不支持循环引用,例如:

var car = {}
car.myself = car;
JSON.stringify(car);
Run Code Online (Sandbox Code Playgroud)

但是,如果您想探索另一个选项,dojox.json.ref确实支持循环引用.

但是,如果您的目的是严格调试,我建议使用内置的浏览器调试器,如Chrome,IE或Firebug(对于Firefox).


Rob*_*aus 7

您可以使用console.log()和chrome javascript调试控制台,即使它具有循环引用,也可以让您检查对象.