2013-04-18 54 views
4

如何在D3中導入json文件?如何在D3中導入json數據?

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

但是我怎麼訪問進一步代碼這組數據?

到目前爲止,我曾嘗試:

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

但使用。數據(數據)並沒有在代碼中的其他工作。例如,這裏

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到變量,它工作正常。所以數據本身沒有問題。

+0

'd3.json(「foo.json」,功能(錯誤,根){})的原因;'根帽子json的根節點。 – Imperative 2013-04-18 05:22:25

回答

8

函數d3.json()是異步的。因此,在讀取data變量之前,您必須等待接收數據。這就是爲什麼,異步數據打交道時,這種做法是做一切d3.json()函數內部

d3.json("temp.json", function(error, data){ 
    //use data here 
}) 
// do not use data anymore