我对谷歌图表有点问题,我的array.php json数据输出如下
var jsondata = {"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}]}
这与谷歌图表工作正常
var data = new google.visualization.DataTable(jsond);
var chart = new
google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
When i call trough the ajax i am getting error saying invalid json.
var jsonData = $.ajax({
url: "array.php",
dataType:"json",
async: false
}).responseText;
var data = new google.visualization.DataTable(jsonData);
var chart = new
google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
有人解释了这一点。
答案 0 :(得分:1)
jsonData是一个字符串(responseText) 将其解析为json
jQuery.parseJSON(jsonData)
答案 1 :(得分:0)
我不知道您的PHP代码输出了什么,但请确保您的php echo语句中有 json_encode($ array); 。
除此之外,使用Google Chrome开发者控制台记录来自您的AJAX请求的json数据,看它是否与 jsondata 变量中的json匹配,并相应地更改输出格式。
有时,您可能会错误地添加/不添加方括号[]。 照顾好这一点。
此外,如果您的PHP正在生成数组,请确保其结构与所需的结构相匹配。 (有时我们会犯愚蠢的错误)