将JSON数据解析为chart.js

时间:2015-08-20 10:43:34

标签: jquery json chart.js

我正在尝试使用Chart.js使用动态生成的数据生成饼图。我无法以正确的格式获取数据,我认为我很接近,但我已经被困住了一段时间。

我正在使用ajax来获取这样的JSON数据:

$.ajax({
    url: '../helpdesk/getTicketsPerSubcat/' + startDate + '/' + endDate + '/' + activeLabel,
    dataType: 'JSON',
    success: function(result){
        var pieData = new Array();

        // populate array
        for (i in result) {
            var foo = {value: result[i].total, label: result[i].subcategory}
            var jsonString = JSON.stringify(foo);
            pieData.push(jsonString);
        }
        console.log(pieData);
    }
});

返回:

["{"value":"2","label":"Disk Space"}", "{"value":"1","label":"Performance Issue"}"]

这是文档说数据需要的样子:

var data = [
    {
        value: 300,
        label: "Red"
    },
    {
        value: 50,
        label: "Green"
    },
    {
        value: 100,
        label: "Yellow"
    }
]

我似乎在方括号内有这些额外的引号,这些引号必须是导致错误的原因(Uncaught TypeError: Cannot read property 'length' of undefined)。 JSON.stringify()使用了错误的功能吗?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

JSON.stringify()使用了错误的功能吗?

是的,因为有效的JSON被转换为JSON字符串。

相反,只需按下您想要在数组中拥有的对象:

for (i in result) {
    var foo = {value: result[i].total, label: result[i].subcategory}
    pieData.push(foo);
}