2013-02-14 140 views
1

我想使用JSON對象中返回的值在jQuery中創建關聯數組。是動態創建 JSON對象:從JSON創建jQuery數組

[{"name":"key1","value":"value1"},{"name":"key2","value":"value2"},{"name":"key3","value":"value3"},{"name":"key4","value":"value4"}] 

我想創建使用值這種格式的關聯數組中JSON返回:

aResult = {key1 : 'value1', key2 : 'value2', key3 : 'value3', key4 : 'value4'}; 

目前,當我通過JSON對象遍歷,我可以看到所期望的陣列結構在控制檯

$.each(jData, function(k, v) { 
    if (v.name.toLowerCase().indexOf("answer") >= 0) { 
     name = v.name; 
     value = v.value; 
     console.log(name + ' : ' + value); //returns the structure I wish 
    }; 

}); 

但是,當我在循環添加此代碼來創建陣列

var aResult = {name:value} 

它返回[object Object]

我缺少什麼?我應該如何前進?任何幫助表示讚賞。

+1

嘗試'aResult = {}; aResult [name] = value;'或類似的東西。 – Passerby 2013-02-14 03:00:11

+0

工作。謝謝。 – user988544 2013-02-14 03:28:05

回答

4

這應該這樣做

var obj = {}; 
$.each(data, function(i, v){ 
     obj[v.name] = v.value 
    }); 
console.log(obj) 

演示:Fiddle

+0

完美工作。謝謝。 – user988544 2013-02-14 03:26:51

0

首先你需要解析使用

$.parseJSON(); 

需要將JSON轉換的JSON反對 之後嘗試使用

$.each(data, function(n, val) { 
    console.log(name + ': name = ' +val.name + ' value = ' + val.value); 
    }); 
+0

我已經解析JSON,我在控制檯中得到結構,我只是不知道如何用它創建一個數組。 – user988544 2013-02-14 03:07:59

+0

那麼如果你想讀我的問題,你會看到我已經在做這個部分。 – user988544 2013-02-14 03:15:26