如何解决' Uncaught TypeError: Converting circular structure to JSON '



我正在执行网页,但在控制台上检查网页时显示以下错误。"未捕获的类型错误:将循环结构转换为 JSON"

console.log(JSON.stringify(physicianInfo));
 Ext.Ajax.request(
   { async : true, 
     url : Global.URLPrefix + 'addPhysicianInformation', 
     method : 'GET', 
     params : { 
         physicianInfo : JSON.stringify(physicianInfo), callFrom : 'add' },
     success : function (request, resp) { 
         var physician1 = Ext.decode(request.responseText); console.log(physician1);

当您在对象之间具有循环引用时,会发生这种情况。

例如:

A references B
B references A

当您尝试序列化 A 时,它需要序列化 B,但随后需要再次序列化 A,并且无法在 JSON 中表示该循环。结果将是一个无限递归循环。

您需要识别并删除循环引用。请记住,链可能比上述更复杂:

A references B
B references C
C references A

有多少链接或如何存储它们并不重要。如果您可以从一个对象转到另一个对象,然后通过任何路由返回到第一个对象,那么它是一个循环引用。

JSON 不能包含循环引用(你知道什么是循环引用吗?

在序列化之前,需要重新设置数据结构的格式以避免它们。

相关内容

最新更新