Javascript Highcharts返回错误14

Javascript Highcharts返回错误14,javascript,highcharts,Javascript,Highcharts,在花了几个小时试图弄清楚如何将JSON字符串处理成javascript数组之后,我试图用highcharts绘制一个饼图。 这就是我所拥有的 gateway_useage: function(usage_data) { var options = { chart: { renderTo:'gateway-usage', plotBackgroundColor: null,

在花了几个小时试图弄清楚如何将JSON字符串处理成javascript数组之后,我试图用highcharts绘制一个饼图。 这就是我所拥有的

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);

    }
网关使用:功能(使用数据){ 变量选项={ 图表:{ renderTo:“网关使用”, plotBackgroundColor:null, plotBorderWidth:null, plotShadow:false }, 标题:{text:'Gateway Usage'}, 工具提示:{ pointFormat:“{series.name}:{point.percentage}%”, 百分比小数:1 }, 打印选项:{ 馅饼:{ allowPointSelect:true, 光标:“指针”, 数据标签:{ 启用:对, 颜色:'#000000', 连接器颜色:'#000000', 格式化程序:函数(){ 返回“+this.point.name+”:“+this.percentage+”%”; } }, showInLegend:对 } }, 系列:[{ 键入“pie”, 名称:'用法', }] } var serie1=使用情况数据映射(函数(e){ 返回[e.gateway,e.val]; }); options.series.push({data:serie1}); var图表=新的Highcharts.图表(选项); } 加载页面并检查错误控制台后,显示“未捕获的Highcharts错误#14:www.Highcharts.com/errors/14”。我做错了什么,请帮帮我

清楚地说

发送到series.data的字符串值,应为数字 如果将字符串作为数据点传递,则会发生his

如果
serie.data
的格式为

[y1,y2,y2] 

在上述任何形式中,
y1
y2
y3
中存储的数据类型应为数字。您只需在javascript中使用or即可实现这一点

var serie1 = usage_data.map( function(e) {
            return [e.gateway, parseFloat(e.val)];
});
或者在您使用的服务器技术中执行此操作
在(PHP4>=4.2.0,PHP5)中可以使用

$float_value_of_var = floatval("123.456");

你查过它给你的网址了吗?很可能您的序列数据不是正确的数据类型(应该是数字)。是的,我检查了url,但这段代码应该解析json var serie1=usage_data.map(函数(e){return[e.gateway,e.val];});options.series.push({data:serie1});所以highcharts可以理解它是的,我看到它返回了highcharts期望的正确数据结构,但是数据本身,也就是e.val,可能不是一个数字(可能是一个字符串),我猜。我会设置一个断点并检查值,或者只是在map函数中执行一个parseFloat(e.val),然后看看会发生什么。这个答案只为我节省了2个多小时的调试时间。
var serie1 = usage_data.map( function(e) {
            return [e.gateway, parseFloat(e.val)];
});
$float_value_of_var = floatval("123.456");