从数组中获取键值

时间:2013-04-11 09:29:57

标签: javascript jquery arrays json

我有这种格式的数组数据,我想得到键和值数组。 如何从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"}
];

2 个答案:

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

答案 1 :(得分:1)

更新:已添加eval。没注意到它是在一个字符串中。

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

var element = eval(jsonData)[0];

eval可以从字符串转换为javascript对象。 然后,要访问任何内容(例如dimensions数组),请执行以下操作:

var dimensions = element.dimensions;