2013-03-26 63 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