2017-04-20 155 views
0

我想使用chart.js显示条形图。使用chart.js时不显示条形图

数据JSON在另一个名为barchart.txt的文件中,我从中读取它的函数。它看起来像数据格式不正确,因为当我把警报放在第一行的功能,即使这不起作用。

barchart.txt和Default.aspx都位于同一位置。

barchart.txt

{ 
     labels: ["January", "February", "March", "April", "May", "June", "July"], 
    datasets: [ 
    { 
       label: "Dataset Testing", 
     backgroundColor: [ 
      'rgba(255, 99, 132, 0.2)', 
      'rgba(54, 162, 235, 0.2)', 
      'rgba(255, 206, 86, 0.2)', 
      'rgba(75, 192, 192, 0.2)', 
      'rgba(153, 102, 255, 0.2)', 
      'rgba(255, 159, 64, 0.2)' 
     ], 
     borderColor: [ 
     'rgba(255,99,132,1)', 
     'rgba(54, 162, 235, 1)', 
     'rgba(255, 206, 86, 1)', 
     'rgba(75, 192, 192, 1)', 
     'rgba(153, 102, 255, 1)', 
     'rgba(255, 159, 64, 1)' 
       ], 
     borderWidth: 1, 
     data: [65, 59, 80, 81, 56, 55, 40], 
    } 
     ] 
} 

Default.aspx的

<html> 
    <canvas id="mybarChart1"></canvas> 
</html> 

<script> 
    $.getJSON("barchart.txt", function (data) 
      { 
       alert("here"); 
       var ctx = document.getElementById("mybarChart1"); 
       var myChart = new Chart(ctx, { 
        type: 'bar', 
        data: data, 
        options: { 
         scales: { 
          yAxes: [{ 
           ticks: { 
            beginAtZero: true 
           } 
          }] 
         } 
        } 
       }); 
      }); 
</script> 
+0

我已经贴上面barchart.txt的代码试试。我只是学习JSON,所以我做了另一个例子json2.txt,我写了一些示例数据并阅读它,它工作正常。同样,如果我将粘贴JSON从barchart.txt复制到Default.aspx并将其保存在变量中,如var mydata = {整个数据在这里},那么它工作正常。 –

回答

2

问题只在于你barchart.txt,很显然,这不是一个有效的JSON对象。一个合适的JSON对象看起来像{"key": "string"},你可以参考here了解更多关于JSON

也,你应该改变你的barchart文件的扩展名从.txt.json

所以,你barchart.json文件中的数据应该是这样的......

{ 
    "labels": ["January", "February", "March", "April", "May", "June", "July"], 
    "datasets": [{ 
     "label": "Dataset Testing", 
     "backgroundColor": [ 
      "rgba(255, 99, 132, 0.2)", 
      "rgba(54, 162, 235, 0.2)", 
      "rgba(255, 206, 86, 0.2)", 
      "rgba(75, 192, 192, 0.2)", 
      "rgba(153, 102, 255, 0.2)", 
      "rgba(255, 159, 64, 0.2)" 
     ], 
     "borderColor": [ 
      "rgba(255,99,132,1)", 
      "rgba(54, 162, 235, 1)", 
      "rgba(255, 206, 86, 1)", 
      "rgba(75, 192, 192, 1)", 
      "rgba(153, 102, 255, 1)", 
      "rgba(255, 159, 64, 1)" 
     ], 
     "borderWidth": 1, 
     "data": [65, 59, 80, 81, 56, 55, 40] 
    }] 
} 
1

你的json无效。您可以验证在这里http://jsonlint.com/

{ 
"labels": [ 
    "January", 
    "February", 
    "March", 
    "April", 
    "May", 
    "June", 
    "July" 
], 
"datasets": [ 
    { 
     "label": "Dataset Testing", 
     "backgroundColor": [ 
      "rgba(255, 99, 132, 0.2)", 
      "rgba(54, 162, 235, 0.2)", 
      "rgba(255, 206, 86, 0.2)", 
      "rgba(75, 192, 192, 0.2)", 
      "rgba(153, 102, 255, 0.2)", 
      "rgba(255, 159, 64, 0.2)" 
     ], 
     "borderColor": [ 
      "rgba(255,99,132,1)", 
      "rgba(54, 162, 235, 1)", 
      "rgba(255, 206, 86, 1)", 
      "rgba(75, 192, 192, 1)", 
      "rgba(153, 102, 255, 1)", 
      "rgba(255, 159, 64, 1)" 
     ], 
     "borderWidth": 1, 
     "data": [ 
      65, 
      59, 
      80, 
      81, 
      56, 
      55, 
      40 
     ] 
    } 
]} 

上述JSON