我正在尝试使用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()
使用了错误的功能吗?非常感谢任何帮助!
答案 0 :(得分:1)
JSON.stringify()
使用了错误的功能吗?
是的,因为有效的JSON被转换为JSON字符串。
相反,只需按下您想要在数组中拥有的对象:
for (i in result) {
var foo = {value: result[i].total, label: result[i].subcategory}
pieData.push(foo);
}