2015-09-18 169 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() –