2013-04-11 5 views
-5

У меня есть данные массива в этом формате, я хочу получить массив ключей и значений. Как получить ключ и значение из этого массива в javascript.получить ключевое значение из массива

jsonData = [ 
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves": [false,false,false,false,false],"id":"p1","color":"0x000000"}, 
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves": [false,false,false,false,false],"id":"p1","color":"0x000000"}, 
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves": [false,false,false,false,false],"id":"p1","color":"0x000000"} 
]; 
+4

Жаль быть тупым здесь, но в чем проблема? Формат JSON - это массив. –

+0

hi thedixon Я хочу преобразовать эти данные в массив, потому что мы не передаем данные в формат массива –

+1

, что данные json являются УЖЕ javascript-массивом. – kennypu

ответ

1

ОБНОВЛЕНО: Добавлено eval. Не заметил, что это было в цепочке.

Мне кажется, что ваша самая большая проблема в том, что все это завернуто в массив с одним элементом. Вы можете сделать:

var element = eval(jsonData)[0]; 

eval есть для преобразования из строки в JavaScript Object. Затем, чтобы получить доступ что-нибудь (например, dimensions массив), выполните следующие действия:

var dimensions = element.dimensions; 
+0

размеры только возвращают одиночные "[" если мы предупреждаем (размеры) это –

+0

Мой плохой - я не видел, что данные были в строке. Я обновил ответ, чтобы принять это во внимание. –

2

У меня есть реализовать это решение

function getDataArray(name='', index=''){ 
    elements = generateDataArray("profiles"); 
    arrData = $.parseJSON(elements); 
    data = new Array(); 
    color = new Array(); 
    dataid = new Array(); 
    $.each(arrData,function(key,val){ 
     $.each(val,function(key2,val2){ 
    if(key2=="dimensions"){  
     data.push(val2) 
     }else if(key2=="color"){ 
     color.push(val2) 
     } 

    }) 
    }) 

    number =0; 
    newArray = new Array(); 
    while(number<data.length){ 
    newArray[number] = new Array(data[number],color[number]) 
    number++; 
    } 

     return newArray; 
} 
Смежные вопросы