json JavaScript:TypeError:循环对象值

7lrncoxx  于 12个月前  发布在  Java
关注(0)|答案(2)|浏览(234)

我试图对一个JavaScript对象进行字符串化,但是当我这样做时,会得到以下错误:
TypeError:循环对象值
我不相信我的代码包含任何循环引用(newServiceObject在对象内部没有被引用),所以我不明白为什么我会得到这个消息。
我想把包含两个属性和一个数组的对象变成一个字符串。

var serviceName = $('#newServiceNameBox').val();
        var serviceCodeElemList = $(".ServiceCodeName").map(function() { return $(this).html(); } );
        //create the new service object
        var newServiceObject = {ServiceId:-1, ServiceName: serviceName, ServiceCodes: serviceCodeElemList };

        var appendNewService = '&newService='+JSON.stringify(newServiceObject);

字符串
错误发生在最后一行(JSON.Stringify()),但我不知道为什么!

dohp0rv5

dohp0rv51#

这通常是因为您试图序列化一个JavaScript对象,该对象的属性在一个循环中相互指向。
在您的示例中,newServiceObject.serviceCodeElemList指向一个jQuery对象,该对象中确实有循环:它的context属性指向一个文档对象。

var jqueryObj = $('div');
    console.log(jqueryObj.context); // Document object
    console.log(jqueryObj.context.body.firstChild.ownerDocument); // Document object

个字符

xfyts7mz

xfyts7mz2#

我的问题是,当使用jquery构建数组时,我应该在map函数之后包含toArray()方法。

var list = $(".ServiceCodeName").map(function() { return $(this).html(); } ).toArray();

字符串
因此,当数组包含在对象中时,它是一个标准数组,而不是jquery对象。

相关问题