javascript - 如何序列化全日历源。将循环结构转换为 JSON 错误

标签 javascript jquery fullcalendar

我使用来自 http://arshaw.com/fullcalendar/ 的 fullcalendar jquery 插件 并且我在我的网站上使用了 knockout js。

我添加了事件数组,日历的来源是什么。用户可以修改事件(数组)。

然后我想序列化事件数组,通过 ajax 发送,但我不能,因为日历修改了我的数组,并将一个循环放入源数组。我怎样才能删除更改。为什么我的数组中有一个循环?我看了,这里面可能有一个 DOM 对象。

Chrome sendrequest error: TypeError: Converting circular structure to JSON

var a = [];
a.push({
  title: "Event2",
  start: "2013-09-05"
});
a.push({
  title: "Event2",
  start: "2013-09-15"
});

$("#calendar").fullCalendar({
  events: a,
  header: {
    left: "title",
    center: "",
    right: "today prev,next"
  },
  editable: false
});

console.log(JSON.stringify(a));

TypeError:将循环结构转换为 JSON

我该如何解决? 循环的原因是什么?

fiddle 例子,你可以看到我的问题:

http://jsfiddle.net/erbsaag/XC3NH/1

最佳答案

插件正在修改您的数据。

如果你跑

console.log(a)

在您的 console.log 之前,您可以看到问题。一种解决方案是只返回您需要的字段,而不返回具有循环递归的字段。

例子:

console.log(JSON.stringify(a.map(function(ai) { return {title: ai.title, start: ai.start}})));

关于javascript - 如何序列化全日历源。将循环结构转换为 JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964844/

相关文章:

javascript - $ ("user-input").is (":focus") 、 ("*:focus") 、 ("input:focus") 不起作用

jquery 等效于 css3 过渡缓入

javascript - formatTime 以 "h"而不是 ":"作为分隔符

javascript - 如何将变量传递给完整的日历事件?

javascript - 每次为我的网站生成一个随机值

javascript - 为什么 jQuery.length == 2?

jquery - 如何从ajax调用参数传递c#类型的Guid类型变量

javascript - CKEditor 插件 - 如何以正确的方式触发 DialogCommand

javascript - Ajax Post 上的内部服务器错误 500

javascript - 在 jQuery 的 fullcalendar 上填充数据库中保存的事件?