我正在开发一个使用 Google Charting API 的项目,我想使用 json 填充图表来构建数据表。
作为一项测试,我试图在尝试使用数据库中的动态数据之前构建一个简单的数组,但是我在获取正确格式的 json 时遇到了问题。
在谷歌文档中,它说 json 内容应如下所示:
{
"cols": [
{"id":"","label":"Topping","pattern":"","type":"string"},
{"id":"","label":"Slices","pattern":"","type":"number"}
],
"rows": [
{"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
{"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
{"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
]
}
我正在调用一个返回 json 代码的函数。
下面是函数的调用方式
print json_encode(test());
并且测试函数是
function test()
{
$array = array();
$array['cols'][] = "20-01-13";
$array['cols'][] = "21-01-13";
$array['cols'][] = "22-01-13";
$array['rows'][] = 22;
$array['rows'][] = 26;
$array['rows'][] = 12;
return $array;
}
生成图表的javascript如下
<script>
google.load('visualization', '1', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData = $.ajax({
url: "loadGraph.php",
dataType:"json",
async: false
}).responseText;
var data = new google.visualization.DataTable(jsonData);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('lineGraph'));
chart.draw(data, {width: 400, height: 240});
}
</script>
当我回显 json 时,它以以下格式返回
{"cols":["20-01-13","21-01-13","22-01-13"],"rows":[22,26,12]}
如果我尝试将其用于谷歌图表的数据集,我会收到以下消息
Cannot read property of '1' of undefined
我只是在构建一个简单的折线图,它只包含沿 x 轴的日期和沿 y 轴在该日期发生的次数的计数。
我如何构建数组以使其以正确的格式用于 google api 图表。
感谢您的任何帮助,您可以提供。