我正在尝试使用带有名为Bic_Calendar的引导日历的小胡子 基本上你可以使用像这样的对象向日历添加事件
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',
},
]}
;
所以我试图将原始事件连接成一个新事件,但它不起作用,所以我想我在连接中做错了什么
var events1 = '{"events": '. concat(events) .concat('}');
var events1 = '{"events": ' + events + '}';
非此选项有效!
答案 0 :(得分: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字符串,因此您不应期望能够将其连接为字符串。
答案 1 :(得分: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
。顺便说一句,concat是array
个对象的方法。