我花了數小時試圖弄清楚如何將JSON字符串處理成一個javascript數組,然後試圖用highcharts繪製一個餅圖。 這是我Highcharts返回錯誤14
gateway_useage: function(usage_data) {
var options = {
chart: {
renderTo:'gateway-usage',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: { text: 'Gateway Usage' },
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage}%</b>',
percentageDecimals: 1
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: 'Usage',
}]
}
var serie1 = usage_data.map(function(e) {
return [e.gateway, e.val];
});
options.series.push({data: serie1});
var chart = new Highcharts.Chart(options);
}
加載頁面,並檢查錯誤控制檯說「未捕獲Highcharts錯誤#14:www.highcharts.com/errors/14」之後。有什麼做錯了,請幫我出
你檢查了它給你的URL嗎?您的系列數據很可能不是正確的數據類型(應該是數字)。 –
是的,我檢出了url,但是這段代碼應該解析json var serie1 = usage_data.map(function(e){ return [egateway,e.val]; }); options.series.push({data:serie1});所以高層可以理解它 – MrFoh
是的,我看到它返回了正確的數據結構,正如高圖所期望的那樣,但數據本身,也就是e.val,可能不是一個數字(它可能是一個字符串),我猜測。我會設置一個斷點並檢查該值,或者只需在地圖函數中執行parseFloat(e.val)並查看會發生什麼。 –