使用Chart.js将JSON数据绘制到图表上

时间:2016-03-30 01:44:17

标签: javascript jquery json chart.js

我有一个希望可以得到帮助的问题。我已经在这里阅读了一些教程和一些问题,但似乎没有人回答我的问题。我正在向我的PHP文件发出一个ajax请求,该文件将返回一个类似于此类的JSON响应(控制台记录输出):

{ Email addresses: 4, IP addresses: 2, Names: 1 }

我希望能够使用Chart.js将其绘制到图表上,但我尝试过:

$.each(res, function(i, item) {
    data = {
        label: i,
        value: item
    }
}
var myDoughnutChart = new Chart(ctx).Pie(data);

问题是它只填充一种颜色和一种带有一个值的标签。有什么办法可以改变JSON输出的格式,因此它可能会读取:

{ "Label":"Email addresses","Value":"4" }

必须使用Javascript / JQuery进行更改。我必须指出标签并不总是相同,有时JSON输出可能会有所不同,如:

{ Usernames: 3, Passwords: 3, Names: 1 }

以上只是我在输出到控制台时所得到的。

我如何使用JQuery或其他的$ .each()来绘制图表呢?任何帮助将不胜感激,抱歉这个问题的长度。

2 个答案:

答案 0 :(得分:2)

当你使data与当前项目相等时,它总是覆盖$.each(res, function(i, item) { if (!Array.isArray(data)) { data = []; } data.push({ label: i, value: item }); } var myDoughnutChart = new Chart(ctx).Pie(data); ,并且等于循环后的最后一个元素。您需要向其中添加元素,因此图表中会有更多元素。

public class Answer
{
    [Key]
    public int AnswerId { get; set; }
    public string AnswerText { get; set; }
    public int Question_QuestionId { get; set; }       
}

答案 1 :(得分:0)

非常容易

转到chart.js脚本并用电子邮件地址和IP地址替换标签和值。  最初它接受标签和价值以及一些可选的属性,如颜色和所有......

希望vl帮助