2013-10-10 111 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對象的方法。