2013-04-11 60 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; 
}