Javascript 将普通json数据转换为Google Visualization DataTable能够理解的数据?
我刚开始使用谷歌图表和它非常酷的东西。唯一的问题是,我找不到任何好的例子来使用sql server视图提供的数据来实现这一点。所以我创建了一个示例项目来促进这个功能,不管我如何努力让它工作。请在下面找到我的代码:Javascript 将普通json数据转换为Google Visualization DataTable能够理解的数据?,javascript,json,google-visualization,Javascript,Json,Google Visualization,我刚开始使用谷歌图表和它非常酷的东西。唯一的问题是,我找不到任何好的例子来使用sql server视图提供的数据来实现这一点。所以我创建了一个示例项目来促进这个功能,不管我如何努力让它工作。请在下面找到我的代码: <script type="text/javascript"> // Load the Visualization API and the piechart package. google.load('visualization', '1',
<script type="text/javascript">
// Load the Visualization API and the piechart package.
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: "api/Google",
dataType: "json",
async: false
}).responseText;
alert(jsonData);
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
data.addColumn('string', 'Employee');
data.addColumn('number', 'TotalNoOfReports');
// 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 });
}
</script>
有没有一种方法可以让我的jsonData看起来像上面的结构,可能是更通用的。唯一的图表示例是静态的,有时您需要读取数据库,请协助。我在这方面的知识非常有限,但是如果您首先将json数据转换为可读的数据,然后执行循环以添加行,会怎么样?比如:
var jsondata = eval ("(" + JSONObject + ")");
然后
for(var key in jsondata) {
data.addRows (row);
我知道这是一个非常有限且简短的答案,但也许其他人会有更好的解决方案。我在这方面的知识非常有限,但如果您首先将json数据转换为可读的数据,然后执行循环以添加行,会怎么样?比如:
var jsondata = eval ("(" + JSONObject + ")");
然后
for(var key in jsondata) {
data.addRows (row);
我知道这是一个非常有限且简短的答案,但也许其他人会有更好的解决方案。响应格式略有不同,您只粘贴了dataTable部分,但它还包含状态代码、请求Id和api版本:
{version:'0.6',reqId:'0',status:'ok',sig:'5982206968295329967',table:{cols:[{id:'Col1',label:'',type:'number'},{id:'Col2',label:'',type:'number'},{id:'Col3',label:'',type:'number'}],rows:[{c:[{v:1.0,f:'1'},{v:2.0,f:'2'},{v:3.0,f:'3'}]},{c:[{v:2.0,f:'2'},{v:3.0,f:'3'},{v:4.0,f:'4'}]},{c:[{v:3.0,f:'3'},{v:4.0,f:'4'},{v:5.0,f:'5'}]},{c:[{v:1.0,f:'1'},{v:2.0,f:'2'},{v:3.0,f:'3'}]}]}};
您可以在此处阅读更多信息:
响应格式略有不同,您只粘贴了dataTable部分,但它还包含状态代码、请求Id和api版本:
{version:'0.6',reqId:'0',status:'ok',sig:'5982206968295329967',table:{cols:[{id:'Col1',label:'',type:'number'},{id:'Col2',label:'',type:'number'},{id:'Col3',label:'',type:'number'}],rows:[{c:[{v:1.0,f:'1'},{v:2.0,f:'2'},{v:3.0,f:'3'}]},{c:[{v:2.0,f:'2'},{v:3.0,f:'3'},{v:4.0,f:'4'}]},{c:[{v:3.0,f:'3'},{v:4.0,f:'4'},{v:5.0,f:'5'}]},{c:[{v:1.0,f:'1'},{v:2.0,f:'2'},{v:3.0,f:'3'}]}]}};
您可以在此处阅读更多信息:
添加一条语句来解析json字符串,如
var obj = $.parseJSON(jsonData);
并将解析后的对象传递给GoogleDataTable
var data = new google.visualization.DataTable(obj);
添加一条语句来解析json字符串,如
var obj = $.parseJSON(jsonData);
并将解析后的对象传递给GoogleDataTable
var data = new google.visualization.DataTable(obj);