gpt4 book ai didi

javascript - 为什么 JSON.stringify($ ('#calendar' ).fullcalendar ('clientEvents' )) 失败了?

转载 作者:行者123 更新时间:2023-11-30 12:02:07 25 4
gpt4 key购买 nike

如题,当我尝试做的时候:

myString = JSON.stringify($('#calendar').fullcalendar('clientEvents'));

它失败了。我试图提醒 myString 但我看到了一系列 [Object object], ... . 但是如果我尝试提醒 myArray[0].title 例如,它正确返回。

我哪里做错了?

附言目标是获取一个字符串以通过 AJAX 保存在文件中。

最佳答案

您的结果告诉您,fullCalendar clientEvents 方法为您提供的数组中的对象无法直接转换为 JSON。我在 http://fullcalendar.io 上得到的结果略有不同页面(我在尝试转换循环结构时遇到错误);我认为这是因为您使用的 FullCalendar 版本与他们使用的不同,或者您的浏览器和我的浏览器处理循环结构的方式不同。无论哪种方式,这些对象显然都不能按原样使用。

The goal is to obtain a string to save on a file via AJAX.

您可以通过在数组上使用 map 来获取可以成功转换为 JSON 的对象,将您想要的属性列入白名单(或将您不需要的属性列入黑名单)来做到这一点不想)。

这是一个将 startendtitle 属性列入白名单的示例:

var json = JSON.stringify($("#calendar").fullCalendar("clientEvents").map(function(e) {
return {
start: e.start,
end: e.end,
title: e.title
};
}));

这是一个黑名单 source 和任何以 _ 开头的属性:

var json = JSON.stringify($("#calendar").fullCalendar("clientEvents").map(function(e) {
var rv = {};
Object.keys(e)
.filter(function(k) {
return k != "source" && !k.startsWith("_");
})
.forEach(function(k) {
rv[k] = e[k];
});
return rv;
}));

...在他们的网站上对我有用。

这是这两个的 ES2015 版本:

白名单:

let json = JSON.stringify($("#calendar").fullCalendar("clientEvents").map(e => ({
start: e.start,
end: e.end,
title: e.title
})));

黑名单:

let json = JSON.stringify($("#calendar").fullCalendar("clientEvents").map(e => {
let rv = {};
Object.keys(e)
.filter(k => k != "source" && !k.startsWith("_"))
.forEach(k => {
rv[k] = e[k];
});
return rv;
}));

关于javascript - 为什么 JSON.stringify($ ('#calendar' ).fullcalendar ('clientEvents' )) 失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com