将 JSON 数据解析为 chart.js 的特定格式
Parsing JSON data into specific format for 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);
}
});
哪个returns:
["{"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()
是不是使用了错误的函数?非常感谢任何帮助!
JSON.stringify()
是否使用了错误的函数?
是的,因为有效的 JSON 被转换为 JSON 字符串。
相反,只需将您想要的对象放入数组中即可:
for (i in result) {
var foo = {value: result[i].total, label: result[i].subcategory}
pieData.push(foo);
}
我正在尝试使用 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);
}
});
哪个returns:
["{"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()
是不是使用了错误的函数?非常感谢任何帮助!
JSON.stringify()
是否使用了错误的函数?
是的,因为有效的 JSON 被转换为 JSON 字符串。
相反,只需将您想要的对象放入数组中即可:
for (i in result) {
var foo = {value: result[i].total, label: result[i].subcategory}
pieData.push(foo);
}