1

我有一个json响应,例如:

{ "total": 2, "success": true, "rows": [ {"a1_id":"7847TK10", "output2":"7847TK10", etc. 
etc} ]}

现在我的谷歌可视化(饼图)代码只有在以下情况下才能很好地执行:

<script type="text/javascript">

// load visualization library
google.load('visualization', '1', {packages: ['corechart']});

$(function() { 
     // when document loads, grab the json
     $.getJSON('regiontop11.json', function(data) {
         // once grabbed, we run this callback

         // setup the new map and its variables
         var map = new google.visualization.DataTable();
             map.addRows(data.length);  
             map.addColumn('string', 'outputsix');
         map.addColumn('number', 'outputnine');

         // now we need to build the map data, loop over each result
         $.each(data, function(i,v) {
             // set the values for both the name and the population
             map.setValue(i, 0, v.output6);
             map.setValue(i, 1, v.output9);
         });
         // finally, create the map!
         var chart = new google.visualization.PieChart(
           document.getElementById('visualization'));
              chart.draw(map, null);

     });
});

</script>

....我将我的 json 调整为:

[ {"a1_id":"7847TK10", "output2":"7847TK10", etc. etc} ]

问题是我无法调整 json.php 本身,因为扩展(见上文)输出对于其他应用程序是必需的。所以只是跳过 { "total": 2, "success": true, "rows": 它的一部分是没有选择的。两个版本都是有效的 Json。我可以在我的浏览器-Pie Code- 中使用例如 JQuery 做一些事情吗?解决方案非常受欢迎!

问候彼得

4

1 回答 1

1

在将其用于 DataTable 之前,您可以从 JSON 信封中提取您需要的内容。

如果响应是这样的:

{
  "total": 2,
  "success": true,
  "rows": [{
      "a1_id": "7847TK10",
      "output2": "7847TK10",
      etc.
      etc
  }]
}

然后你可以像这样得到你想要的:

 $.getJSON('regiontop11.json', function(data) {

     var rows = data.rows;

     var map = new google.visualization.DataTable();
     map.addRows(rows.length);  
     map.addColumn('string', 'outputsix');
     map.addColumn('number', 'outputnine');
     ...
     $.each(rows, function(i,v) {
     ...
于 2012-06-23T04:34:53.403 回答