2013-10-10 76 views
0

我试图用胡子一个名为Bic_Calendar 自举日历基本上你可以添加事件到日历像这样字符串连接到JSON对象

var events = [ 
{ 
date: "28/10/2013", 
title: 'DUE DAY ENROLMENT', 
}, 
{ 
date: "29/10/2013", 
title: 'DUE DAY PAYMENT', 
}, 
{ 
date: "31/10/2013", 
title: '1st DAY OF CLASS', 
}, 
] 
; 

什么,我想用胡子有一物体下一个事件的简单总结,问题是,为了胡子呈现 模板对象必须改变:

var events = {"events": [ 
{ 
date: "28/10/2013", 
title: 'DUE DAY ENROLMENT', 
}, 
{ 
date: "29/10/2013", 
title: 'DUE DAY PAYMENT', 
}, 
{ 
date: "31/10/2013", 
title: '1st DAY OF CLASS', 
}, 
]} 
; 

所以我要把原来的事件连接成一个新的,但它是不是w所以我想我在做错了连接

var events1 = '{"events": '. concat(events) .concat('}'); 
var events1 = '{"events": ' + events + '}'; 

这个选项非工作!

回答

1

var events不是JSON。它是一个真正的JavaScript数组,你不应该连接它,而只需将它嵌套在一个新对象中,然后在需要JSON字符串的情况下序列化为JSON。

var events = [ 
    { 
    date: "28/10/2013", 
    title: 'DUE DAY ENROLMENT', 
    }, 
    { 
    date: "29/10/2013", 
    title: 'DUE DAY PAYMENT', 
    }, 
    { 
    date: "31/10/2013", 
    title: '1st DAY OF CLASS', 
    }, 
]; 

var nestedEvents = { 'events': events }; 
var jsonEvents = JSON.stringify(nestedEvents); 

作为一般的经验法则,如果您发现自己想要手动构建JSON字符串,那么您可能没有采取正确的方法。建立你想要序列化成JSON的数据结构,然后序列化它。对于开发人员来说,另一个问题似乎是混乱的一个共同点,那就是JSON只不过是一些数据结构的序列化字符串表示。没有这样的东西作为JSON对象。 JSON格式当然与JavaScript对象字面值有很强的相似性,但它确实不同,应该这样对待。在这种情况下,您的events变量不包含JSON字符串,所以您不应该期望能够将它连接起来,就像它是一个字符串一样。

0

你有对象的像

var events = [ 
    { 
     date: "28/10/2013", 
     title: 'DUE DAY ENROLMENT', 
    }, 
    { 
     date: "29/10/2013", 
     title: 'DUE DAY PAYMENT', 
    }, 
    { 
     date: "31/10/2013", 
     title: '1st DAY OF CLASS', 
    } 
]; 

数组只是做一个新的对象与事件阵列这样

var eventsObj = { 'events': events }; 

如果你需要使它成为一个JSON字符串,那么你可以使用JSON.stringify ,它会将object转换为json string。顺便说一句,concatarray对象的方法。