2013-03-26 41 views
0

我想將數組中的對象添加到JSON對象中的項目。將對象添加到JSON中的數組

我找的結果是:

{ "AvailableFacets":[ "color", "sheenlevel" ], 
    "Selections":[ 
     { "Facet":"color", "Value":"red" }, 
     { "Facet":"color", "Value":"blue" } 
    ] 
} 

,但我得到的錯誤「類型錯誤:myJsonObject.Selection.push是不是一個函數」執行以下操作時:

var testJson = function() { 
    var myJsonObject = $.parseJSON('{"AvailableFacets":["color", "sheenlevel"]}'); 
    myJsonObject.Selection = "[]"; 
    var newObject1 = $.parseJSON('{"Facet":"color", "Value":"red"}'); 
    var newObject2 = $.parseJSON('{"Facet":"color", "Value":"blue"}'); 
    myJsonObject.Selection.push(newObject1); 

    return myJsonObject; 
}; 

什麼我做錯了嗎?

+0

你爲什麼要設置'Selection'到字符串而不是數組? – 2013-03-26 00:49:56

+0

'myJsonObject.Selection = [];',但是因爲您正在測試JSON:'myJsonObject.Selection = $ .parseJSON('[]');':p – 2013-03-26 00:51:33

+0

我是否將它設置爲字符串?我對此很陌生,認爲這是一個數組。 – Villem 2013-03-26 00:51:46

回答

2

"[]"!== []。這有幫助嗎?您正在使用錯誤的類型。您還在尋找"Selections"的輸出,但您試圖定義"Selection",但我認爲這是一個錯字。這應該工作:

myJsonObject.Selection = [{"Facet":"color", "Value":"red"},{"Facet":"color", "Value":"blue"}]; 

但是,如果你想解析JSON字符串作爲JSON然後就改變

myJsonObject.Selection = "[]"; 

到:

myJsonObject.Selection = []; 
+0

你們很漂亮! '[]'和'$ .parseJSON('[]')'都有效! – Villem 2013-03-26 00:56:39

+0

感謝您指出錯字,沒有看到。 :) – Villem 2013-03-26 00:57:40

+0

我需要使用'$ .parseJSON'所有這些時間,還是它是矯枉過正? – Villem 2013-03-26 01:00:34