从变量分配数据时,Google堆栈图表未呈现

时间:2018-02-05 04:59:48

标签: javascript jquery wcf charts google-visualization

我需要在Google Charts中开发堆叠图表,我是新手 以下是生成图表的示例代码。

function drawChart()
    {
       var data = google.visualization.arrayToDataTable(["Label", "I", { role: "style" }, "J", { role: "style" }, "K", { role: "style" }, "M", { role: "style" }],["MJ1", 0.05, "#808080", 0.0775, "#C71585", 0.069, "#FFC0CB", 0.05, "Blue"],["MJ2", 0.05, "Yellow", 0.0775, "Pink", 0.069, "#808080", 0.05, "black"]);
       var options = {
            width: 1000,
            height: 550,
            legend: { position: 'none', maxLines: 6, textStyle: {color: 'black', fontSize: 10 } },
            isStacked: true,                
        };
        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    }

上面提到的代码工作正常。但是当我将数据更改为变量并使用下面提到的变量时,不会生成图表。

var temp = '["Machine", "I", { role: "style" }, "J", { role: "style" }, "K", { role: "style" }, "M", { role: "style" }],["MJ1", 0.05, "#808080", 0.0775, "#C71585", 0.069, "#FFC0CB", 0.05, "Blue"],["MJ2", 0.05, "Yellow", 0.0775, "Pink", 0.069, "#808080", 0.05, "black"]';

var data = google.visualization.arrayToDataTable([temp]);  

谁能告诉我我做错了什么 原因:我编写了一个WCF服务,它以与temp变量字符串数据相同的格式返回简单字符串 提前谢谢!
JSFiddle也是如此 - http://jsfiddle.net/crazyCoder1989/79ffvayr/653/

1 个答案:

答案 0 :(得分:0)

您必须将字符串转换为正确的JSON字符串,因此:

  • 将您的temp字符串嵌入数组分隔符 []

    var temp = '['+temp+']';

  • 用双引号括起属性名称:

    temp = temp.replaceAll('role', '"role"');

  • 最后JSON解析字符串并将结果传递给arrayToDataTable()方法:

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

检查小提琴:http://jsfiddle.net/beaver71/zh7upjoz/