Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么JSON.stringify($(';#calendar';).fullcalendar(';clientEvents';)失败?_Javascript_Jquery_Arrays_Json_Fullcalendar - Fatal编程技术网

Javascript 为什么JSON.stringify($(';#calendar';).fullcalendar(';clientEvents';)失败?

Javascript 为什么JSON.stringify($(';#calendar';).fullcalendar(';clientEvents';)失败?,javascript,jquery,arrays,json,fullcalendar,Javascript,Jquery,Arrays,Json,Fullcalendar,作为标题,当我尝试执行以下操作时: myString = JSON.stringify($('#calendar').fullcalendar('clientEvents')); 它失败了。我试图提醒myString,但我看到一系列[Object Object]但如果我尝试提醒myArray[0]。例如,title,它将正确返回 我哪里做错了 另外,目标是通过AJAX获取一个字符串以保存在文件中。您的结果告诉您,fullCalendarclientEvents方法提供的数组中的对象不能直接转换

作为标题,当我尝试执行以下操作时:

myString = JSON.stringify($('#calendar').fullcalendar('clientEvents'));
它失败了。我试图提醒
myString
,但我看到一系列
[Object Object]但如果我尝试提醒
myArray[0]。例如,title
,它将正确返回

我哪里做错了


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

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

目标是通过AJAX获取要保存在文件上的字符串

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

下面是一个示例,其中列出了
开始
结束
标题
属性:

var json = JSON.stringify($("#calendar").fullCalendar("clientEvents").map(function(e) {
    return {
        start: e.start,
        end: e.end,
        title: e.title
    };
}));
这里有一个黑名单
源代码
和任何以
开头的属性:

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;
}));

“两个例子都失败了”两个例子都在做同样的事情。您在第二个示例的第一行中创建的数组被第二行中的赋值丢弃。很抱歉,这是一个冗余。现在您指的是问题中未显示的内容(
myArray
)。在任何情况下,您能否创建一个演示该问题的示例?建议该方法返回一个对象数组,我希望
JSON.stringify
处理它们,除非它们定义了一个奇怪的
toJSON
。肯定需要一个。如果我去打开控制台并执行
jQuery(#calendar”).fullCalendar(“clientEvents”)
(注意大写字母
C
),我会得到一系列事件。如果我做了
JSON.stringify(jQuery(“#calendar”).fullCalendar(“clientEvents”)
,我会得到
TypeError:将循环结构转换为JSON(…)
,这不是您所说的。您试图获取对象中的哪个字符串?现在,为了测试的目的,您正在尝试警告一个字符串化对象。这解决了我的问题,非常感谢!)