在Chartjs中显示JSON数据

Jas*_*hen 13 javascript json chart.js

我正在尝试使用Chart JS创建一个表,其中包含来自我的JSON文件的动态生成的数据点.我的代码的逻辑如下:

var datapart;
for (i = 0; i < jsonfile.jsonarray.length; i++){
     datapart += {
          label: jsonfile.jsonarray[i].name,
          data: [jsonfile.jsonarray[i].age] 
     };
}

var config = {
   type: 'line',
   data: {
      labels: ["Graph Line"],
      datasets: [datapart]
   }
}
Run Code Online (Sandbox Code Playgroud)

我的JSON文件同时看起来像这样:

{
"jsonarray": [
    {
      "name": "Joe",
      "age": 12
    },
    {
      "name": "Tom",
      "age": 14
    }
]
}
Run Code Online (Sandbox Code Playgroud)

config变量包含ChartJS的配置设置,包括设置数据点.加载到ChartJS时,config提供显示我的图表所需的信息.

无论如何,我的想法是使用变量datapart作为使用for循环附加数据集的方法.不幸的是,代码没有产生结果.我知道我添加变量的方法有问题,但我不确定如何继续.

我怎样才能将这些JSON值添加到Chart.js?

ɢʀᴜ*_*ᴜɴᴛ 38

您构建图表的方法完全不合适.这是你应该遵循的正确方法:

var jsonfile = {
   "jsonarray": [{
      "name": "Joe",
      "age": 12
   }, {
      "name": "Tom",
      "age": 14
   }]
};

var labels = jsonfile.jsonarray.map(function(e) {
   return e.name;
});
var data = jsonfile.jsonarray.map(function(e) {
   return e.age;
});;

var ctx = canvas.getContext('2d');
var config = {
   type: 'line',
   data: {
      labels: labels,
      datasets: [{
         label: 'Graph Line',
         data: data,
         backgroundColor: 'rgba(0, 119, 204, 0.3)'
      }]
   }
};

var chart = new Chart(ctx, config);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js"></script>
<canvas id="canvas"></canvas>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!包含我的数据的更好方法。我现在遇到的唯一问题是,当我希望将列表中的两个人分成他们自己的数据集时,它会作为一个数据集打印。 (2认同)