Google可视化API示例中的“无效的JSON字符串”

时间:2014-10-29 21:15:04

标签: javascript json google-visualization

我试图通过基于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"}]}]}

1 个答案:

答案 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文件返回的字符串相同。检查确保您的回复中没有隐藏或意外的字符