2014-12-04 75 views
0

如何最好地將json文件轉換爲另一種格式?我讀了'地圖'的方法,但不知道如何使用它。轉換json文件爲另一種格式

[{"Southern":"9"},{"South-West":"83"},{"South-East":"448"},{"Western":"638"},{"North-Western":"706"},{"Eastern":"710"},{"North-East":"1055"}] 

我想的轉換:

 [ 
      ['Southern', 9], 
      ['South-West', 83],     
      ['South-East', 448], 
      ['Western', 638], 
      ['North-Western', 706], 
      ['Eastern', 710], 
      ['North-East', 1055], 

     ] 

代碼:

data.map(function(e) { 
    .......... 
    }); 
+0

您真的想要一個數組數組?像「南方」這樣的東西:9,「西南」:83「不是更實際嗎? – Tomalak 2014-12-04 09:04:27

回答

4
newData = data.map(function(e) { 
    var key = Object.keys(e)[0]; 
    return [ key, parseInt(e[key], 10) ]; 
}); 

然而,這似乎是,如果你將它轉換到一個它會更有用object:

{ 
    'Southern': 9, 
    'South-West': 83, 
    'South-East': 448, 
    'Western': 638, 
    'North-Western': 706 
    'Eastern': 710 
    'North-East': 1055 
} 

這是可以做到的:

newObject = {}; 
data.forEach(function(e) { 
    var key = Object.keys(e)[0]; 
    newObject[key] = e[key]; 
}); 
1

如果你不想使用的地圖,你可以用一個簡單的循環:

var result = []; 
for (var i = 0, l = arr.length; i < l; i++) { 
    var key = Object.keys(arr[i])[0]; 
    var val = parseInt(arr[i][key], 10); 
    result.push([key, val]) 
} 

DEMO

相關問題