Javascript 图表未使用google图表显示

Javascript 图表未使用google图表显示,javascript,node.js,charts,google-visualization,Javascript,Node.js,Charts,Google Visualization,您好,我正在使用谷歌图表显示图表,但它没有显示图表。我可以在firbug控制台中看到json打印,但仍然没有显示图表。下面是我的代码 function drawChart() { $.ajax({ url: ipaddress+'/getSpecificFields', dataType: "json", success: function (jsonData) { alert

您好,我正在使用谷歌图表显示图表,但它没有显示图表。我可以在firbug控制台中看到json打印,但仍然没有显示图表。下面是我的代码

function drawChart() {
        $.ajax({
            url: ipaddress+'/getSpecificFields',
            dataType: "json",
            success: function (jsonData) {
                alert('success');
                if (!$.browser.msie) {
                    console.log(jsonData);

                }
                // Create our data table out of JSON data loaded from server.
                var data = new google.visualization.DataTable(jsonData);
                data.addColumn("string", "abc");
                data.addColumn("string", "cde");
                data.addColumn("string", "fgh");

                data.addRows(jsonData.length);

        var i = 0;
        $.each(jsonData, function () {

            data.setValue(i, 0, this.abc);
            data.setValue(i, 1, this.cde);
            data.setValue(i, 2, this.fgh);
            i++;
        });
                // Instantiate and draw our chart, passing in some options.
                var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
                chart.draw(data, {
                    width: 400,
                    height: 240
                });
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus + '\n' + errorThrown);
                if (!$.browser.msie) {
                    console.log(jqXHR);
                }
            }
        });
    }}
从服务器返回的json

[Object { abc="leave, cde="80%", fgh="52b83880a36dcda423000001"}, Object { abc="Meeting", cde="60%", fgh="52b83880a36dcda423000002"}, Object { abc="Work", cde="70%", fgh="52b83880a36dcda423000003"}]
从浏览器,例如localhost:3000/左右

[
  {
    "abc": "Work",
   "cde": "50%",
    "ghe": "1",    
  },
  {    
    "cde": "50%",
    "abc": "Sick",
    "ghe": "2"
  },
  {
    "abc": "Some",
    "cde": "50%",
    "ghe": "3",    
  }
]
以及节点js中的服务器端代码

var jsonString = [];
var jsonParse;
test.find({abc:1,cde:1,ghe:1},function (err, list, count) {
        if (err) throw(err);
        list.forEach(function(listLoop){

            jsonParse = JSON.parse(JSON.stringify(listLoop));
            console.log("jsonParse " + JSON.stringify(listLoop)); 
            jsonString.push(jsonParse);
        });        
        res.json(jsonString);
    });

您的JSON似乎不正确,您应该在此处查看Google文档:

这个问题听起来很像你想做的:


首先,您需要从DataTable构造函数中删除
jsonData

var data = new google.visualization.DataTable(jsonData);
应该是:

var data = new google.visualization.DataTable();
其次,您的数据完全由字符串组成,PieChart无法处理这些字符串。PieCharts需要两列数据:1个字符串用于标签,1个数字用于值。如果要创建数字列,请确保JSON没有在数字周围加引号


第三(我假设这只是将真实数据更改为样本数据的一个输入错误),您从数据数组中对象的
fgh
属性中提取数据,但对象中没有
fgh
属性。

您的JSON看起来无效,但这可能只是您的浏览器显示它的方式。在浏览器中,转到由
ipaddress+'/getSpecificFields'
指定的URL,并使用该URL的输出更新您的帖子,以便我确认JSON是否有效。@asgallant,我已更新帖子。您可以验证JsonTanks是否存在数字问题:)