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

标签 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() 来绘制图表?任何帮助将不胜感激,抱歉这个问题太长了。

最佳答案

当您使其与当前项相等时,您始终会覆盖data,并且将等于循环后的最后一个元素。您需要向其中添加元素,因此图表中会有更多元素。

$.each(res, function(i, item) {
    if (!Array.isArray(data)) {
        data = [];
    }
    data.push({
        label: i,
        value: item
    });
}
var myDoughnutChart = new Chart(ctx).Pie(data);

关于javascript - 使用 Chart.js 将 JSON 数据绘制到图表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298175/

相关文章:

javascript - AngularJS 指令链接功能不起作用

javascript - 如何在angularjs中使用ng-repeat在css中动态设置表格列的宽度

jquery - 从 span 元素中删除具有特定类的所有元素

javascript - 如何删除第 3 个之后的每个 {element}?

javascript - jQuery:向上滑动一个元素并替换它

javascript - 使用 Jquery 获取 JSON 属性

javascript - 使用 AJAX 单击提交按钮后刷新 div,而不是页面

javascript - 为什么我的星号算法在 JavaScript 中不起作用?

java - Flink反序列化Kafka JSON

javascript - 如何访问 JSON 编码关联数组中的单个项目