如何使用d3.js访问JSON

时间:2015-02-19 17:55:04

标签: javascript json d3.js

似乎找不到这个问题的答案。

d3.js是否需要数据采用特定格式。例如:

var dataset = {
"people": [
  {
    "name": "person1",
    "projects": [
      {
        "name": "project1"
      },
      {
        "name": "project3"
      }
    ]
  },
  {
    "name": "person2",
    "projects": [
      {
        "name": "project1"
      },
      {
        "name": "project2"
      }
    ]
  }
 ]
};

然后用这个:

d3.select('body')
.selectAll('p')
  .data(dataset)
  .enter()
  .append('p')
  .text(function(d){
    return d;
  }); 

不会退货。

希望有人可以提供帮助。

文档和其他教程都说你可以使用上面的内容,但总是使用数组作为示例/ demo。

1 个答案:

答案 0 :(得分:3)

正如@MikeAtkins所说,你正在尝试数据绑定外部对象。尝试:

var dataset = {
"people": [
  {
    "name": "person1",
    "projects": [
      ...
    ]
  },
  ...
 ]
};

d3.select('body')
.selectAll('p')
  .data(dataset.people)
  .enter()
  .append('p')
  .text(function(d){
    return d.name;
  }); 

如果要绑定到NESTED数组(即每个人的每个项目),您应该看到this tutorial