如何使用d3从嵌套的JSON数组调用数据?

时间:2013-07-09 19:53:33

标签: javascript json svg d3.js

我在json数据中嵌套了数组,但我不知道如何在d3(初学者)中调用它们。

在下面的示例中,我正在尝试使用嵌套在Json中“meal”数组中的“January”数组中的数据构建S​​VG条形图。

Json看起来像这样:

{
"meals":[
    {"january":[
        {},{}
    ]},

    {"february":[
        {},{}
    ]},

    {"march":[
        {},{}
    ]},
  }

d3代码看起来像这样。 “chart”获取用户输入的下拉菜单。在这种情况下,它基本上返回“饭菜”:

    var chart = selection.options[selection.selectedIndex].id;

    var dataset = data[chart];

    var svg = d3.select ("body") 
                .append ("svg")
                .attr("width", w)
                .attr("height", svgHeight+30);


    svg.selectAll("rect") 
                .data(dataset.january) //***HERE is where I'm having trouble***
                    .enter()
                    .append("rect") 

1 个答案:

答案 0 :(得分:1)

d3.nest()可以将这样的数据转换为可解析的数组。这些“教程”示例很棒:http://bl.ocks.org/phoebebright/raw/3176159/

鉴于它对您的项目是可行的,否则更改数据格式以便更容易遍历可能会更好。例如

{
"meals":[
    {"name":"salad","month":"january"},
    {"name":"burger","month":"february"}, //etc...