2013-04-11 48 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格式是一个数组。 – 2013-04-11 09:30:50

+0

嗨thedixon我想将此数据转换为数组,因为我们neet将数据传递到数组格式 – 2013-04-11 09:32:26

+1

即json数据已成为一个JavaScript数组。 – kennypu 2013-04-11 09:33:19

回答

1

修订:新增eval。没有注意到它是在一个字符串中。

在我看来,你最大的问题是它全部用单个元素包裹在一个数组中。你可以这样做:

var element = eval(jsonData)[0]; 

eval是否有从字符串转换为JavaScript对象。 然后,访问任何东西(例如dimensions阵列),请执行下列操作:

var dimensions = element.dimensions; 
+0

尺寸只返回单个“[”如果我们警告(尺寸)这个 – 2013-04-11 09:59:53

+0

我的坏 - 我没有看到数据是在一个字符串。我已经更新了答案,以考虑到这一点。 – 2013-04-11 17:44:26

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; 
}