Javascript:TypeError:循环对象值

标签 javascript json

我正在尝试对 javascript 对象进行字符串化,但是当我这样做时出现以下错误:

TypeError: cyclic object value

我不认为我的代码包含任何循环引用(对象内部未引用 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()),但我不知道为什么!

最佳答案

这通常是因为您正在尝试序列化一个 JavaScript 对象,该对象的属性在一个循环中相互指向彼此。

在您的示例中,newServiceObject.serviceCodeElemList 指向一个 jQuery 对象,其中确实有循环:它的 context 属性指向一个文档对象。文档对象具有指向 DOM 元素的指针,这些元素具有通过 ownerDocument 属性指向文档的指针

    var jqueryObj = $('div');
    console.log(jqueryObj.context); // Document object
    console.log(jqueryObj.context.body.firstChild.ownerDocument); // Document object
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>

关于Javascript:TypeError:循环对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334580/

相关文章:

java - 如何将json添加到GET请求查询参数中?

json - 如何反序列化无效的 json ?截断的对象列表

javascript - 计算内部 div 的宽度/高度(以毫米为单位)(相对于已知宽度/高度(以毫米为单位)的外部 div。)

javascript - 页面只是重新加载但不会重定向到该页面

php - JS变量的下拉值

html - django模板语言系统中图片标签和源的使用方法

ios - 有错误的 RACSignal 映射

javascript - 从 attr() 获取值后对象没有方法 'spilt'

javascript - 没有 jQuery 的淡入淡出

ios - 如何在 Swift 中从同一站点重新加载新的 JSON 数据?