如何格式化JSON数据以使用Google Charts正确显示?

时间:2013-12-17 03:18:08

标签: ajax json google-visualization

这是我的代码,我花了几个小时谷歌搜索这个没有成功......

google.load('visualization', '1', {packages: ['corechart']});

google.setOnLoadCallback(drawVisualization);

function drawVisualization(){
      var jsonData = $.ajax({
          url: "FinancialData.php",
    //    data: "ChartRequest=" + "Employees",
          dataType:"json",
          async: false, 
          }).responseText;
          window.alert(jsonData); //this always returns correctly formatted data

    var data = new google.visualization.DataTable(jsonData); //this never works


    var chart = new google.visualization.PieChart(document.getElementById('visualization'));
    chart.draw(data, {title:"Progress Fest Financial Information, Fall 2013"});
};

代码返回“表没有列”

1 个答案:

答案 0 :(得分:1)

responseText是作为字符串的响应,不是由JSON解析为Javascript对象。 jQuery将解析后的结果传递给AJAX完成函数,但是你没有使用它,所以你没有得到它。您需要明确调用$.parseJSON

var jsonData = $.parseJSON($.ajax({
    ...
}).responseText);

或者您可以使用完成功能(因此您不需要使用async: false):

$.ajax({
    ...
}).done(function(jsonData) {
    window.alert(jsonData);
    var data = new google.visualization.DataTable(jsonData);
    var chart = new google.visualization.PieChart(document.getElementById('visualization'));
    chart.draw(data, {title:"Progress Fest Financial Information, Fall 2013"});
});