谷歌图表 - 未捕获的错误:不是数组

Lat*_*san 2 javascript php google-visualization

我有一个PHP脚本,生成谷歌图表数据,并以json编码格式返回.它使用jQuery $ .get()方法加载到谷歌图表中.当我将返回数据传递给google" arrayToDataTable "函数时,如下所示:

var googleChartData = google.visualization.arrayToDataTable(chartData);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

在此输入图像描述

所以,我做的是我转储了我的变量" chartData " 的值,我得到了以下内容:

在此输入图像描述

所以,我做的是,将这些数据从控制台窗口手动复制到" arrayToDataTable "函数中,如下所示:

var googleChartData = google.visualization.arrayToDataTable([["Date Range","0001\/102\/0 Available","0001\/102\/0 Unavailable","0001\/102\/1 Available","0001\/102\/1 Unavailable"],["02\/10\/2013",0,1,110,11],["03\/10\/2013",0,1,189,11],["04\/10\/2013",0,1,189,11],["06\/10\/2013",0,1,189,10],["07\/10\/2013",0,1,187,10],["08\/10\/2013",186,11,0,1],["09\/10\/2013",186,11,0,1],["10\/10\/2013",0,1,186,11],["11\/10\/2013",0,1,204,11],["13\/10\/2013",0,1,204,11]]);
Run Code Online (Sandbox Code Playgroud)

现在图表呈现(正如预期的那样,因为我的php脚本返回的数据是正确的):

在此输入图像描述

这有点奇怪; 有没有人知道为什么图表从变量加载时不起作用?

Lat*_*san 9

我通过改变arrayToDataTable这样解决了它:

var googleChartData = google.visualization.arrayToDataTable($.parseJSON(chartData));
Run Code Online (Sandbox Code Playgroud)

感谢这篇文章:https://stackoverflow.com/a/9420583/2332336