2015-08-24 38 views
-3

我從結果獲得JSON數據如下,如何將JSON數據轉換爲JQuery中的數組?

var chartData1 = [ 
    {\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"}, 
    {\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"}, 
    {\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"} 
    ] 

我想將它轉換成以下,

var chartData2 = [ 
    ['Action', 'value', 'platform'], 
    ['Twitter', '1.00', 2], 
    ['WhatsApp', '1.00', 3], 
    ['Messaging', 'WhatsApp', 4], 
    ] 

我使用了不同的方法,如parseJSON,地圖等,但我不能獲得預期的結果。

Can you help me out from this. 
+0

你能從你的數據刪除垃圾''\\? – dfsq

回答

1

我假設您首先需要解析包含您的數據的有效JSON字符串,然後將每行與對象轉換爲數組。並用列名前綴數組。下面的代碼將完全做到這一點:

var chartDataString = "[{\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"},{\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"},{\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"}]"; 

var chartData = JSON.parse(chartDataString); 

var keys = []; 
var data = []; 
var row; 
for (var i = 0; i < chartData.length; i++) { 
    row = []; 
    for (var key in chartData[i]) { 
     if (i === 0) { 
      keys.push(key); 
     } 

     row.push(chartData[i][key]); 
    } 

    if (i === 0) { 
     data.push(keys); 
    } 

    data.push(row); 
} 

console.log(data); 
+0

謝謝,它工作正常.. – Srinivas

0

下面的代碼將轉換爲數組,提供它已被解析爲一個對象。

var chartData2 = Object.keys(chartData1).map(function(k) { return chartData1[k] }); 

console.log(chartData2); 
0

也許這裏最最理想的是原始數組映射到新的結構:

var chartData1 = [ 
 
    {"Action":"Twitter","value":"1.00","platform":"2"}, 
 
    {"Action":"WhatsApp","value":"1.00","platform":"3"}, 
 
    {"Action":"Messaging","value":"1.00","platform":"4"} 
 
]; 
 

 
var result = chartData1.map(function(el) { 
 
    return [el.Action, el.value, el.platform]; 
 
}); 
 
result.unshift(['Action', 'value', 'platform']); 
 

 

 
alert(JSON.stringify(result, null, 4));