2013-02-14 4 views
1

Я хочу создать ассоциативный массив в jQuery, используя значения, возвращаемые объектом JSON. Объект JSON создается динамически:Создать массив jQuery из JSON

[{"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

+0

Это сработало. Спасибо. – user988544

ответ

4

Это должно сделать

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

Демо: Fiddle

+0

Работал отлично. Спасибо. – user988544

0

Прежде всего, вам нужно разобрать JSON с помощью

$.parseJSON(); 

требуется преобразовать JSON к объекту После этого попробуйте использовать

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

Я уже разбираюсь в JSON, я получаю структуру в консоли, я просто не знаю, как создать массив с ней. – user988544

+0

Хорошо, если вы прочитаете мой вопрос, вы увидите, что я уже делаю эту часть. – user988544

Смежные вопросы