将json加载到chart.js中

问题描述:

我想通过ajax将jsonData加载到chart.js对象中。将json加载到chart.js中

我的问题是它交给jsondata作为字符串chart.js之

我认为阿贾克斯()。responseText的检索字符串,但chart.js之数据预计一个数组?

我对谷歌图表做了同样的工作,效果很好。

这里是我的代码:

<html> 
    <head> 
    <script type="text/javascript" src="./jquery-3.1.1.min.js"></script> 
    <script type="text/javascript" src="./jslib.js"></script> 
    <script type="text/javascript" src="./Chart.min.js"></script> 
    </head> 

    <body> 
     <div class="container"> 
      <h2>Chart Test</h2> 
      <div> 
      <canvas id="myChart"></canvas> 
      </div> 
     </div> 
     <script type="text/javascript"> 
      var jsonData = $.ajax({ 
       type: "POST", 
       data: { "ibrconfig_id": 26}, 
       url: "./ibrlib.php", 
       dataType:"json", 
       async: false 
       }).responseText; 
      //document.write(jsonData);// this returns: { labels: ["1","2"], datasets: [ { label: "Taster", data: [0,0], backgroundColor: "rgba(153,255,51,0.6)" } ] }  
      var ctx = document.getElementById('myChart').getContext('2d'); 
      var myChart = new Chart(ctx, 
      { 
       type: 'bar', 
       data: jsonData 
      }); 

      /* 
      This works very fine 
      var ctx = document.getElementById('myChart').getContext('2d'); 
      var myChart = new Chart(ctx, 
      { 
       type: 'bar', 
       data: { labels: ["1","2"], datasets: [ { label: "Taster", data: [0,0], backgroundColor: "rgba(153,255,51,0.6)" } ] } 
      }); 
      */  
     </script> 
    </body> 
</html> 

我如何处理呢? 非常感谢您的时间!

使用JSON.parse(jsonData)使对象从JSON字符串

+0

不工作... VAR objData = JSON.parse(jsonData); 类型:'bar', data:objData – Julian

+0

你能显示'objData'的内容吗?你可以使用'console.log(objData)',你将在web检查器中输出 – andr1o

好吧我知道了。谢谢andr1o

my jsonData was wrong。

{ labels: ["1","2"], datasets: [ { label: "Taster", data: [0,0], backgroundColor: "rgba(153,255,51,0.6)" } ] } 

没有我改成了

{ "labels": ["1","2"], "datasets": [ { "label": "Taster", "data": [0,0], "backgroundColor": "rgba(153,255,51,0.6)" } ] }