我试图从url创建的json数组填充DOJO饼图

时间:2012-04-17 18:34:56

标签: json dojo pie-chart

我正在尝试从url创建的json数组填充dojo饼图。

url返回一个看起来像这样的数组

  

{“pieItems”:[[“IPv4 TCP”,475919493840],[“IPv6 TCP”,37443255432],[“IPv4 UDP”,34595392128],[“IPv6 ICMP”,14496],[“IPv4 ICMP” ,46560],[“IP Other”,12385112]]}

我试图重做数组的格式,将其更改为看起来像这样的

  

{“IPv4 TCP”:[475919493840],“IPv6 TCP”:[37443255432],“IPv4 UDP”:[34595392128],“IPv6 ICMP”:[14496],“IPv4 ICMP”:[46560],“ IP其他“:[12385112]}。

我用来改变格式的代码是:

var len = responseObj.pieItems.length, i, hash = {};
    for (i = 0; i < len; i++) {
        hash[responseObj.pieItems[i][0]] = responseObj.pieItems[i][1];
    }

更改格式后,我只能通过添加系列并指定名称来填充图表。

  

chart1.addSeries(“IP Other”,hash [“IPv6 ICMP”])

这会使用该项填充图表,但如果我尝试添加另一个系列,例如

  

chart1.addSeries(“IP Other”,hash [“IPv4 Other”])

它会覆盖图表并显示IP Other的数据,而不是添加另一个切片。

如何将数组中的所有项目添加到饼图中?

1 个答案:

答案 0 :(得分:1)

饼图根据定义仅支持一个系列对象。您应该为不同的切片添加不同的数据点。草图:

chart.addSeries("IP", dojo.map(responseObj, function(p){
  return {
    y:    p[1], // value
    text: p[0]  // label
  };
});