Highcharts饼图不是从JSON对象绘制切片

时间:2016-11-01 13:52:51

标签: json highcharts

对于客户,我的公司正在努力将一些来自AJAX-JSON调用的数据导入Highcharts。
数据是客户在他/她的帐户中有多少设备活动。

我们使用的功能是:
获取JSON

function getChartJSON(url){
    return $.ajax({
        type: "GET",
        url: url,
        async: false
    }).responseText;
}

创建图表

function createPieChart(data, title){
    var json = jQuery.parseJSON(data);
    var options = {
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false,
            renderTo: 'pie-container',
            type: 'pie'
        },
        title:{
            text: title
        },
        plotOptions:{
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: false
                },
                showInLegend: true
            },
        },
        series:[{data:json}]
    };

    $.each(data, function (i, point) {
        point.y = parseInt(point.data, 10);
    });

    new Highcharts.Chart(options);
}

一切似乎都很顺利,并且对象已经完成,索引(索引?)显示切片类型(1,2,3,4,4个设备处于活动状态),而不是切片本身。

以字符串形式返回的JSON是:

[
  {"name":"Single device registered","data":13},
  {"name":"Double device registered","data":0},
  {"name":"Triple device registered","data":2},
  {"name":"Quadruple device registered","data":0},
  {"name":"Quadruple-plus device registered","data":3}
]

我错过了哪些不允许绘制切片?我希望有足够的信息可以帮助我们解决这个问题,或者至少可以复制手头的问题。

1 个答案:

答案 0 :(得分:0)

有点讽刺的是,一旦我在这里发布一个问题,我就找到了答案。错误发生在:

$.each(data, function (i, point) {
    point.y = parseInt(point.data, 10);
});

第一个参数是'data',但它应该是'json'。它现在有效。