Javascript 谷歌图表饼图不完整

Javascript 谷歌图表饼图不完整,javascript,ajax,google-visualization,Javascript,Ajax,Google Visualization,我正在使用谷歌图表API显示一个带有我的性别重新划分的饼图,但我有一个小问题,我的饼图不完整,如下图所示。 我使用这个JSON数组生成它: {"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]

我正在使用谷歌图表API显示一个带有我的性别重新划分的饼图,但我有一个小问题,我的饼图不完整,如下图所示。

我使用这个JSON数组生成它:

{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]}
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
这是我的Javascript代码

function drawSexChart() {
      var jsonData = $.ajax({
          url: "http://localhost/studentlink/web/js/ajax.php?sexChart",
          dataType: "json",
          async: false
          }).responseText;
      var data = new google.visualization.DataTable(jsonData);
      console.log(jsonData);
      var chart = new google.visualization.PieChart(document.getElementById('chartUsersBySex'));
      chart.draw(data, null);
  }
我不知道为什么我的馅饼没有做好

如果有人能帮我

先谢谢你


托马斯

最后,我找到了我的馅饼不完整的原因,我发布了我的解决方案,以帮助将来有同样问题的人

实际上,为了生成JSON字符串,我在包含图表所有信息的PHP对象中使用了
JSON\u encode
PHP函数

但实际上,我是这样使用这个函数的:

return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果

{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]} 
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
在这个结果中,我们可以看到表示我的值的数字介于
之间

但是现在,如果我像这样生成JSON字符串:

return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果

{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]} 
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}

我的号码周围的
字符消失了,我的馅饼全满了

最后,我终于找到了我的馅饼不完整的原因,我发布了我的解决方案,以帮助将来有同样问题的人

实际上,为了生成JSON字符串,我在包含图表所有信息的PHP对象中使用了
JSON\u encode
PHP函数

但实际上,我是这样使用这个函数的:

return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果

{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]} 
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}
在这个结果中,我们可以看到表示我的值的数字介于
之间

但是现在,如果我像这样生成JSON字符串:

return json_encode($this);
return json_encode($this,JSON_NUMERIC_CHECK);
结果

{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":"2","f":null}]},{"c":[{"v":"Femme","f":null},{"v":"1","f":null}]}]} 
{"cols":[{"id":"","label":"Topping","pattern":"","type":"string"},{"id":"","label":"Slices","pattern":"","type":"number"}],"rows":[{"c":[{"v":"Homme","f":null},{"v":3,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]}]}

我的号码周围的
字符消失了,我的馅饼全满了

这是因为您的值是字符串而不是整数

所以你需要做的是

1) 更改从服务器返回的数据,以便行数据反映这一点

"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]
2) 在将数据与图表应用程序一起使用之前,请先更改数据。例如:

var rowData = jsonData.rows;
for (var i = 0, l = rowData.length; i < l; i++) {
  rowData[i].c[1].v = +rowData[i].c[1].v;
}
var rowData=jsonData.rows;
对于(变量i=0,l=rowData.length;i因为你的值是字符串而不是整数

所以你需要做的是

1) 更改从服务器返回的数据,以便行数据反映这一点

"rows":[{"c":[{"v":"Homme","f":null},{"v":2,"f":null}]},{"c":[{"v":"Femme","f":null},{"v":1,"f":null}]
2) 在将数据与图表应用程序一起使用之前,请先更改数据。例如:

var rowData = jsonData.rows;
for (var i = 0, l = rowData.length; i < l; i++) {
  rowData[i].c[1].v = +rowData[i].c[1].v;
}
var rowData=jsonData.rows;
对于(变量i=0,l=rowData.length;i
从值中去掉引号(“”)

从值中去掉引号(“”)