如何解决(Uncaught TypeError:将循环结构转换为JSON)

时间:2018-06-09 11:21:30

标签: json stringify

我有以下对象,我正在尝试将其转换为json对象,如下所示

 var feeTransactionsArray=[];

                 $(".editor #newPayTable .mainTr").each(function(){ 

                     var feeTransactions={};
                     var studentDetails={};
                     var feeCategory={};


                     studentDetails['studentAdmissionId']=id;

                     feeCategory['feeCatId']=$(this).find('.feeCatId').val();

                     feeTransactions['studentDetails']=studentDetails;

                     feeTransactions['feeCategory']=feeCategory;

                     feeTransactions['paidOn']=paidDate;

                     feeTransactions['transReceiptNo']=receciptNumber;

                     feeTransactions['amountPaid']=$(this).find('.amount').val();

                     feeTransactions['paymentMode']=mode

                     feeTransactions['amountPaid']=refrenceNumber;

                     feeTransactions['isConcessionGiven']='no';

                     feeTransactionsArray.push(feeTransactionsArray);
                 });
                 var myJSON = JSON.stringify(feeTransactionsArray);

这会产生以下错误

actions.js:1180 Uncaught TypeError: Converting circular structure to JSON
    at JSON.stringify (<anonymous>)

在我的情况下如何解决这个问题。请帮我。谢谢!

2 个答案:

答案 0 :(得分:5)

无法在JSON中对循环结构进行字符串化。让我们看一个例子:

var a = { a: undefined };
var b = { b: a };
a.a = b;

然后,我们有对象:

{ a: { b: { a: { b : { a ... infinite recursion

导致您所描述的错误。

答案 1 :(得分:2)

对不起每一个人我的愚蠢错误

feeTransactionsArray.push(feeTransactionsArray);

应为feeTransactionsArray.push(feeTransactions);