JSON.stringify()执行出错

Uncaught TypeError: Converting circular structure to JSON
这个错误是执行JSON.stringify() 时抛出的异常信息
JSON.stringify()用于将json格式转换为string格式,与JSON.parser()相辅相成。

两种方式会导致该错误:

1、json格式数据存在循环调用。

举个例子:

var obj = {
     title: '标题'
}
obj.content = obj;
JSON.stringify(obj);

执行后,控制台将输出:

Uncaught TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at <anonymous>:6:6
    at Object.InjectedScript._evaluateOn (<anonymous>:875:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)
    at Object.InjectedScript.evaluate (<anonymous>:664:21

这是一种错误的编辑方式,我们应该禁止这样进行赋值。

2、json格式数据层级过于复杂。

这种情况在高版本浏览器中可执行,但在一些低版本的浏览器中报错(我是在chrome.40试出来的)。
导致json过于复杂大多数原因是误将DOM或者jQuery对象赋值至json串中了。
为什么会这样?这是由于各类插件在返回数据时,为方便使用会将事件源所在的DOM或jQuery对象一并返回,编码时如果不进行筛选就会造成这种错误。

@拭目以待

表格管理插件:gridmanager.lovejavascript.com && github地址
QQ交流群 (452781895):How To Make Love

《野生前端工程师》专辑中所有文章均为@拭目以待 原创,转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容