TypeError:将循环结构转换为JSON.stringify的JSON

时间:2019-03-29 04:58:38

标签: javascript angularjs

在POST请求中,当我对有效负载执行angular.toJson时,出现此错误。

  

angular.js:12609 TypeError:将圆形结构转换为JSON       在JSON.stringify()       at Object.db [as toJson](http://localhost:8080/adminconsole/lib/bower_components/angular/angular.modified.min.js?_1553818615062:15:433

知道什么原因吗?

谢谢。

1 个答案:

答案 0 :(得分:-1)

包含循环引用的JavaScript结构无法使用“普通” JSON.stringify进行序列化。示例:

复制 a = { name: 'Groucho' }; b = { name: 'Harpo', sibling: a }; a.sibling = b;

执行JSON.stringify(a)会引发错误:

复制 TypeError:将圆形结构转换为JSON

除了指定可检测和清除循环引用的自定义序列化函数外,您无能为力。有现有的解决方案,因此您无需像https://github.com/WebReflection/circular-json

那样思考一个问题。

对于上述结构,您将获得以下内容。

复制 {"name":"Groucho","sibling":{"name":"Harpo","sibling":"[Circular ~]"}}

请注意[Circular〜]如何显示所引用对象的路径。在更深层的嵌套结构中,您会看到类似[Circular〜.rows.1]的东西。