簡體   English   中英

谷歌餅圖的JSON格式

[英]JSON format for google pie chart

您好,我有一個 json 文件,其中存儲的數據如下:

[{"cake": "cake1","order": 20},{"cake": "cake2","order": 34},{"cake": "cake3",
  "order": 11}, {"cake": "cake4","order": 11}, {"cake": "cake5", "order": 5}]

現在我想使用谷歌的餅圖來表示上述數據,但為了做到這一點,它需要采用以下格式:

[ ['Cake', 'No of Orders'], ['cake1', 20],['cake2',34],
  ['cake3', 11],['cake4',11],['cake5',5] ]

谷歌的圖表文檔指定數據應該像這樣傳遞:

var data = google.visualization.arrayToDataTable([
          ['Cake', 'No of Orders'],
          ['cake1', 20],
          ['cake2', 34],
          ['cake3',  11],
          ['cake4', 11],
          ['cake5', 5]
        ]);

請問如何將上面的原始格式更改為包含javascript中的多個列表的列表。 將不勝感激。

也許使用數組.map()方法更改數據格式,然后使用數組.unshift()方法在新數組的開頭插入標題:

var input = [{"cake": "cake1","order": 20},{"cake": "cake2","order": 34},
             {"cake": "cake3", "order": 11}, {"cake": "cake4","order": 11},
             {"cake": "cake5", "order": 5}];

var output = input.map(function(item) { return [item.cake, item.order]; });

output.unshift(["Cake", "No of Orders"]);

var data = google.visualization.arrayToDataTable(output);

這樣的事情怎么樣? 嘗試在 jsbin 中運行它。

var a = [{"cake": "cake1","order": 20},{"cake": "cake2","order": 34},{"cake": "cake3",
  "order": 11}, {"cake": "cake4","order": 11}, {"cake": "cake5", "order": 5}];

function cakeFormat(a){
  var first = [];
  console.log(a);
  // noprotect
  for(var i = 0; i < a.length; i++){
    for(var j in a[i]){
      first.push([j, a[i][j]]);
    }
  }

  var final = [["Cake", "No of Orders"]];

  for(var k = 0; k < (first.length - 1);){
    final.push([first[k][1], first[k+1][1]]);
    k = k + 2;
  }

  return final;
}

cakeFormat(a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM