2015-09-18 168 views
0

我有一個Highcharts餅圖,它使用Ajax調用來檢索JSONArray中的數據。我需要去除所有(「」)的數據,並使其成爲Javascript對象,但我遇到了困難。 JSON.Parse()引發錯誤,因爲它表示數據已被解析。Highcharts餅圖數據損壞

如何以餅圖的正確格式獲取此數據?

呼叫

function getData() { 
    $.ajax({ 
     url: '/data/pie_chart.jsp', 
     cache: true, 
     datatype: 'json', 
     error: function() { }, 
     success: function (data, status, rsp) { 
      alert(data); 
      setPieData(data); 
     } 
    }); 
} 

數據

[{"name":"Dual","load":"20"},{"name":"Gas","load":"35"},{"name":"Other_Fossil_Fuels","load":"15"},{"name":"Nuclear","load":"12"},{"name":"Hydro","load":"8"},{"name":"Wind","load":"10"},{"name":"Other_Renewables","load":"10"}] 
+0

檢查[這](http://stackoverflow.com/a/7432462/3281415)回答 – SerCrAsH

回答

3

您的JSON應名和y的數量返回字符串。然而,解決方法是解析字符串如下

var dataPie =[]; 
var abc =[{"name":"Dual","load":"20"},{"name":"Gas","load":"35"}, 
{"name":"Other_Fossil_Fuels","load":"15"}, 
{"name":"Nuclear","load":"12"},{"name":"Hydro","load":"8"},{"name":"Wind","load":"10"}, 
{"name":"Other_Renewables","load":"10"}]; 

$.each(abc,function(i,el) 
{ 
    dataPie.push({name :el.name,y: parseFloat(el.load)}); 

}); 

Working fiddle with your json

+0

不如數是使用parseFloat( ) –

+1

同意@SebastianBochan,必須使用parseFloat() –