JavaScript异常:未捕获TypeError:将循环结构转换为JSON

Ech*_*cho 6 javascript json

我hava JSON对象:

[#1={id:"2012-05-04", title:"Scheduled", start:(new Date(1336096800000)), source:{events:[#1#], className:[]}, _id:"2012-05-04", _start:(new Date(1336089600000)), end:null, _end:null, allDay:true, className:[]}]
Run Code Online (Sandbox Code Playgroud)

我尝试将其字符串化:

var test = JSON.stringify(resourceVacation, censor(resourceVacation));

function censor(censor) {
    return (function() {
        var i = 0;
        return function(key, value) {
            if (i !== 0 && typeof(censor) === 'object' && typeof(value) == 'object' && censor == value)
                return '[Circular]';

            ++i; // so we know we aren't using the original object anymore

            return value;
        }
    })(censor);
}
Run Code Online (Sandbox Code Playgroud)

我使用此处提到的审查:Chrome sendrequest错误:TypeError:将循环结构转换为JSON n

但是我通过浏览器获得以下异常:

未捕获的TypeError:将循环结构转换为JSON

这是Java Script对象: 在此输入图像描述

我在Mozilla浏览器中使用toSource()获得了以前的JSON对象.知道怎么解决它!

============================ UPDATE ===================== ===

其实我需要从头开始与你分享scnerio:1 - 最初:我有一个表单,最后我构建了java脚本对象,它是:

#1=[{id:"2012-05-03", title:"Scheduled", start:(new Date(1336010400000)), source:{events:#1#, className:[]}, _id:"2012-05-03", _start:(new Date(1336003200000)), end:null, _end:null, allDay:true, className:[]}]
Run Code Online (Sandbox Code Playgroud)

这个对象通常是字符串化的...请注意,这是一个典型的,以后会引发异常.

2-然后我使用以下方法从该数组中删除对象:

function deleteVacation(day) {
    for (var index = 0; index < resourceVacation.length; index++) {
        if (resourceVacation[index].id == day)

            resourceVacation.splice(index,1);
    }
Run Code Online (Sandbox Code Playgroud)

3 - 当我在删除单个对象后尝试对该数组进行字符串化时,我得到了提到的异常.所以.. anu想法为什么它第一次通过而第二次失败!!

don*_*tic 8

您不能JSON编码日期对象.

来自json.org:"值可以是双引号中的字符串,或数字,或true或false或null,或对象或数组.这些结构可以嵌套."

  • @Echo:这很简单.JSON中的值受限于它们可以是什么类型.答案说日期不是这些类型之一.如果你想要一个约会,一个简单的方法是将日期变成一个字符串或数字.根据您的需要,一个或另一个可能会更好. (2认同)

小智 8

问题是源 - 对象是循环引用.

您应该创建没有源对象的对象的副本.

这就是我在FullCalendar中解决问题的方法.

  • 有谁可以解释我如何实现这一目标吗? (2认同)