4

如何在 D3 中导入 json 文件?

我做了d3.json("temp.json");

但是我如何在进一步的代码中访问这个数据集?

到目前为止,我已经尝试过:

var data=d3.json("temp.json");

但是使用 .data(data) 在其余代码中不起作用。例如,这里

var rows = g.selectAll("g.row")
.data(data)
.enter().append("g")
.attr({
  "class": "row",
  "transform": function(d, i) {
    var tx = 170 + i * squareWidth;
    var ty = 150;
    return "translate(" + [tx, ty] + ")"
  }
});

它无法访问数据。我将 json 复制粘贴到变量中,它工作正常。所以数据本身没有问题。

4

1 回答 1

9

该函数d3.json()是异步的。data因此,在读取变量之前,您必须等待接收到数据。这就是为什么在处理异步数据时,做法是在d3.json()函数 内部做所有事情

d3.json("temp.json", function(error, data){
    //use data here
})
// do not use data anymore
于 2013-04-18T05:23:51.713 回答