d3:在本地导入JSON,同时保持数据与我的SVG创建分开

时间:2014-12-01 01:03:25

标签: javascript json d3.js

希望将我的数据与我的视觉分开,我想脱离以下的d3规范。

d3.json("data/2014/adopted.json", function (d) {
   // make an interesting visualization and put all of my code here
});

相反,我希望将我的数据输入到我的脚本中,以便我可以与它进行交互。

myData = d3.json("data/2014/adopted.json", function (d) {
    console.log(d);
    return d;
});

我的目标是拥有一个我的代码可以与之交互的对象。 console.log()有效但当我尝试返回d时,它是未定义的。

myData[0] //Uncaught TypeError: Cannot read property '0' of undefined

我希望使用数据,例如当我将其作为变量包含在我的脚本中时。我可以使用我当前的代码执行此操作,但我希望能够超越它。如何将myData变成对象?

1 个答案:

答案 0 :(得分:0)

d3.json API调用不会像您期望的那样返回值。我找不到文档来指定d3.json方法的返回值是什么。从您的示例中,它似乎总是返回一个未定义的值。

你可以这样做:

var jsondata;
d3.json(dataPath, function(dataFromServer) {
  jsondata = dataFromServer;
}