jquery - 错误: Not an array in Google charts

标签 jquery arrays google-visualization

我设法通过输出以下字符串来从数据库输出结果:

[['Grupo de edad','Mujeres','Hombres'],['Menos de 40',2,0],['De 40 a 49',7,3],['De 50 a 59',8,5],['De 60 a 69',20,25],['De 70 y más',6,10]]

如果我将此文本准确粘贴到以下内容中:

var data = google.visualization.arrayToDataTable([['Grupo de edad','Mujeres','Hombres'],['Menos de 40',2,0],['De 40 a 49',7,3],['De 50 a 59',8,5],['De 60 a 69',20,25],['De 70 y más',6,10]]);

我可以正确地可视化图表。

但是,如果我使用 jQuery .get() 函数获取数据,然后将数据传递给谷歌可视化函数,如下所示:

google.load("visualization", "1.1", {packages:["corechart","bar"]});
google.setOnLoadCallback(drawVisualization);

function drawVisualization() {
    $.get("{{URL::action('ChartController@investigadoresEdadSexo')}}", function(datos, status){
        var data = google.visualization.arrayToDataTable(datos);
        var options = {
            //many options ...
        };

        var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });//End of jQuery .get
}

我明白

Not an Array error

我知道我正在传递一个字符串,但如果我通过键入(复制和粘贴)google.visualization.arrayToDataTable() 函数测试该字符串,为什么它不起作用?或者我如何使该函数将该字符串解释为数组?

我该如何解决这个问题?

最佳答案

尝试使用 JSON.parsedatos 转换为数组:

var data = google.visualization.arrayToDataTable(JSON.parse(datos));

更新

在解析 datos 引号之前,应将 ' 转换为 ":

datos = datos.replace(/'/g, '"');
var data = google.visualization.arrayToDataTable(JSON.parse(datos));

关于jquery - 错误: Not an array in Google charts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500787/

相关文章:

javascript - 如何在对象数组中查找值

javascript - 如何使用JS代码读取文本文件?

javascript - foreach 只产生一个结果

jquery - Colorbox在内容完全加载后返回html

javascript - 如何使数组在Javascript中的不同函数下可访问?

javascript - 如何使用数据数组来制作选定的复选框?

html - 谷歌线图的调整位置

javascript - 如何防止加载谷歌图表表格 css

javascript - $(this) 引用扩展 JQuery 方法中的第一个选择器元素

jquery - Live() 关键字在加载动态 html 图像时不起作用