我正在执行网页,但在控制台上检查网页时显示以下错误。"未捕获的类型错误:将循环结构转换为 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 不能包含循环引用(你知道什么是循环引用吗?
在序列化之前,需要重新设置数据结构的格式以避免它们。