我正在执行一个网页但在控制台上检查时显示以下错误。 '未捕获的TypeError:将循环结构转换为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);
答案 0 :(得分:5)
当对象之间有循环引用时会发生这种情况。
例如:
A references B
B references A
当你尝试序列化A时,它需要序列化B,但是它需要再次序列化A并且无法用JSON表示该循环。结果将是无限递归循环。
您需要识别并删除循环引用。请记住,链条可能比上面的更复杂:
A references B
B references C
C references A
存在多少链接或存储方式无关紧要。如果您可以从一个对象转到另一个对象,然后通过任何路径返回到第一个对象,那么它就是一个循环引用。
答案 1 :(得分:0)
JSON不能包含循环引用(你知道循环引用是什么吗?)
在序列化之前,您需要重新格式化数据结构以避免它们。