var b = {
}
var a = {
b: b
}
b.a = a
JSON.stringify(b) // 当不执行这条的时候,能正常打印出b,但是stringify不行,请问为何?如何能够正常打印出该b值?
请教各位!
问题补充:
是同事出的考题,他在node开发时遇到的问题:
要打印一些 某个库的内置对象,但是展开太大了,然后 用 stringify,然后就报这些错。需要的是这种场景的处理方案。
var b = {
}
var a = {
b: b
}
b.a = a
JSON.stringify(b) // 当不执行这条的时候,能正常打印出b,但是stringify不行,请问为何?如何能够正常打印出该b值?
问题补充:
是同事出的考题,他在node开发时遇到的问题:
要打印一些 某个库的内置对象,但是展开太大了,然后 用 stringify,然后就报这些错。需要的是这种场景的处理方案。
var b = {
}
var a = {
b: b,
toJSON() {
// 自定义返回值
return {}
}
}
b.a = a
JSON.stringify(b) // => {"a":{}}
这个算吗
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
有一个方法是直接去除对象中涉及到循环引用的属性, 有一个json拓展包替我们做了这一步工作, 直接使用就可以了, 链接如下:
https://github.com/douglascro...
JSON.decycle 去除循环引用
JSON.retrocycle 还原
结果: