ChartJS不会识别我的数据库返回的JSON

时间:2018-04-17 13:43:09

标签: javascript jquery json chart.js

我想从数据库中获取信息并绘制图表。 我有这段代码:

$.post("ajax.php?param=grp", {grp: grp}, function (rply) {

            var densityCanvas = document.getElementById("densityChart");

            var R = rply;
            new Chart(densityCanvas, R);


        });

变量rply包含:

    {
      type: "bar",
      data: {
        labels: ["pitanje 1", "pitanje 2", "Pitanje 3"],
        datasets: [
    {
        label: "Pozitivni",
        data: [5, 4, 7],
        backgroundColor: "rgba(0, 99, 132, 0.6)",
        borderColor: "rgba(0, 99, 132, 1)"
    }
    ,
    {
        label: "Negativni",
        data: [3,1, 5],
        backgroundColor: "rgba(99, 132, 0, 0.6)",
        borderColor: "rgba(99, 132, 0, 1)"
    }
    ]
    },
  options: {scales: {
        yAxes: [{
            display: true,
            ticks: {
                suggestedMin: 0, 
                beginAtZero: true
            }
        }]
    }}}

"新图表"除非返回的JSON是硬编码的,否则不会绘制新图表。如果它没有硬编码浏览器会出错:"无法创建属性'数据'在字符串..."。

如果我这样做:var R = JSON.parse(rply);

它给了我这个错误:"位置4和#34的JSON中意外的标记t。

1 个答案:

答案 0 :(得分:0)

rply JSON字符串的问题在于您需要使用"包装密钥,因为JSON.parse(..)需要有效的JSON格式,需要双引号

您可以在w3schools - JSON syntax

中查看简要说明
  

JSON名称需要双引号。 JavaScript名称不是。

Here您可以找到将字符串转换为有效JSON格式的方法。