Javascript 沙特斯旺';我无法识别数据库返回的JSON
我想从数据库中获取信息并绘制图表。 我有以下代码:Javascript 沙特斯旺';我无法识别数据库返回的JSON,javascript,jquery,json,chart.js,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包含
$.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是硬编码的,“new Chart”不会绘制新图表。若不是硬编码的,浏览器会给出一个错误:“无法在字符串上创建属性“数据…”
如果我这样做:var R=JSON.parse(rply)代码>
它给了我这个错误:“JSON中位置4处的意外标记t”。您的rply
JSON字符串的问题是您需要用“
包装密钥,因为JSON.parse(…)
需要一个有效的JSON格式,它需要双引号
您可以在中看到一个简短的解释
JSON名称需要双引号,JavaScript名称不需要
您可以找到一种方法将字符串转换为有效的JSON格式。听起来rply是字符串,而不是JSONYes,但即使我使用JSON.parse(rply),它也不是work@Kreso您能提供数据库返回的整个字符串吗?“位置4处JSON中的意外标记t”。听起来像是无效的JSON字符串parse()也一样如果您这样做,行失败?您是否收到错误?您是否确定您拥有您认为拥有的内容?是否console.log(rply)
还有什么其他内容吗?如果返回的是有效的JSON,那么上面的代码就不是有效的JSON。它缺少有效JSON所需的所有键的引号。您的代码是有效的对象,但不是有效的JSON。因为它不是有效的JSON。它必须是{“type”:“bar”,“data”:
。。。。