javascript - 从 json 创建一个 Chart.js 点数据集

标签 javascript json chart.js

我正在尝试根据 webApi 的 json 响应创建线图。我想创建一个时间点数据集,如下所示:

var adddata = {     
    datasets: [{
                label: "a",
                backgroundColor: "rgba(255,0,0,0.5)",               
                fill: false,
                data: [{
                    x: newDateString(0),
                    y: 22
                }, {
                    x: newDateString(2),
                    y: 25
                }, {
                    x: newDateString(4),
                    y: 12
                }, {
                    x: newDateString(5),
                    y: 22
                }],
            }, {
                label: "b",
                backgroundColor: "rgba(0,255,0,0.5)",                   
                fill: false,
                data: [{
                    x: newDate(0),
                    y: 34
                }, {
                    x: newDate(1),
                    y: 22
                }, {
                    x: newDate(4),
                    y: 2
                }, {
                    x: newDate(5),
                    y: 13
                }]
            }]
    };

现在,如果我有一个如下所示的 json:

{"Values":{"2018-01-17 09:24:34":"0","2018-01-17 09:24:31":"0","2018-01-17 09:24:33":"0","2018-01-17 09:24:35":"0"}} 

是否可以创建一个定义各个点的数据集?

最佳答案

您可以解析 JSON 字符串并将生成的 json 对象转换为数据集,如下所示:

var json_str = '{"Values":{"2018-01-16 09:24:34":"10","2018-01-16 19:24:31":"5","2018-01-17 09:24:33":"8","2018-01-18 09:24:35":"9"}}'
var json = JSON.parse(json_str);

var data = [];
for (var d in json.Values) {
    console.log(d, json.Values[d]);
    data.push({
        x : new Date(d),
        y : json.Values[d]
    })
}
var dataset = {
    label : "c",
    backgroundColor : "rgba(0,0,255,0.5)",
    borderColor : 'green',
    fill : false,
    data : data
};
// add to existing datasets
adddata.push(dataset);

所以这就是结果:https://jsfiddle.net/beaver71/mfvc9p9x/

关于javascript - 从 json 创建一个 Chart.js 点数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48437962/

相关文章:

javascript - ChartJs 不显示数据

javascript - 我可以绑定(bind)一个onclick事件并在chartjs中编辑一个点吗

javascript - PHP MySQL : count views per month for jQuery charts

javascript - 来自 AJAX 调用的 knockout 数据未绑定(bind)

javascript - 将十进制字符串从 php 传递到 jquery

java - 升级到 cordova 3.1.0 后 PushPlugin 不工作

javascript - Webpack 代码分割破坏了 block 之间的 instanceof

java - 如何将 Spring MVC View 呈现为字符串

c# - ASP.NET web api 无法获取 application/x-www-form-urlencoded HTTP POST

php - MySQL 过滤器 JSON_CONTAINS 数组中的任何值