2013-02-14 143 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