我试图对一个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()),但我不知道为什么!
2条答案
按热度按时间dohp0rv51#
这通常是因为您试图序列化一个JavaScript对象,该对象的属性在一个循环中相互指向。
在您的示例中,
newServiceObject.serviceCodeElemList
指向一个jQuery
对象,该对象中确实有循环:它的context
属性指向一个文档对象。个字符
xfyts7mz2#
我的问题是,当使用jquery构建数组时,我应该在
map
函数之后包含toArray()
方法。字符串
因此,当数组包含在对象中时,它是一个标准数组,而不是jquery对象。