我试图通过基于mysql数据库的Google可视化API绘制表格
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['table']});
google.setOnLoadCallback(drawItems);
function drawItems(num) {
//alert(num.value);
var jsonTableData = $.ajax({
url: "gettabledata.php",
data: "q="+num,
dataType:"json",
async: false
}).responseText;
接收json的客户端javascript代码:
var tabledata = new google.visualization.DataTable(jsonTableData);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(tabledata);
}
这会在构造DataTable对象(第一行)时导致以下错误:
未捕获错误:无效的JSON字符串
这是json(由google api生成):
{"cols":[{"id":"Name","label":"Arr Name","type":"string"},{"id":"PMU","label":"PMU","type":"string"}],"rows":[{"c":[{"v":"a_b_c_Yellow"},{"v":"b"}]}]}
答案 0 :(得分:1)
您提供的JSON正常工作,如this fiddle中所示。我硬编码了这样的数据:
google.load('visualization', '1.0', {'packages':['table']});
google.setOnLoadCallback(drawItems);
function drawItems(num) {
var jsonTableData = '{"cols":[{"id":"Name","label":"Arr Name","type":"string"},{"id":"PMU","label":"PMU","type":"string"}],"rows":[{"c":[{"v":"a_b_c_Yellow"},{"v":"b"}]}]}';
var tabledata = new google.visualization.DataTable(jsonTableData);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(tabledata);
}
这意味着您在此处共享的JSON字符串与完全与从php文件返回的字符串相同。检查确保您的回复中没有隐藏或意外的字符。