我尝试使用导入本地.json文件d3.json()
。
该文件filename.json
与我的html文件存储在同一文件夹中。
但是(json)参数为null。
d3.json("filename.json", function(json) {
root = json;
root.x0 = h / 2;
root.y0 = 0;});
. . .
}
我的代码与此d3.js示例中的代码基本相同
如果你在浏览器中运行,则无法加载本地文件。
但是在命令行上运行开发服务器非常简单,只需cd
将文件放入目录中,然后:
python -m SimpleHTTPServer
(或python -m http.server
使用python 3)
现在,在浏览器中,转到localhost:3000
(或:8000
命令行上显示的所有内容)。
以下内容可用于旧版本的d3:
var json = {"my": "json"};
d3.json(json, function(json) {
root = json;
root.x0 = h / 2;
root.y0 = 0;
});
您能否解释一下您的代码...我将如何处理
d3.json(filename, function(error, data) {...}
(我应该提交一个单独的问题?)我会直截了当地说,除了13个投票之外,这个答案的代码是错误的。d3.json将url作为其第一个参数,而不是json对象。同上jQuery的$ .get方法。如果文件中已经定义了json,则无需通过
d3.json
或发出ajax请求$.get
。只需直接引用变量即可。还是我在这里错过了可以解释13个投票的内容?@JamesConkling变量与文件不同。但是可以,您可以将示例中的第一行放在自己的javascript文件中,并且效果也不错。
@ mb21是的,这就是我的意思,如果在脚本文件中定义了json,为什么要使用
d3.json
?如果脚本文件中未定义json,请d3.json
通过服务器使用并加载脚本。混合使用两种方法(在脚本文件中定义json并使用d3.json根本没有意义)。@ mb21,是的,在这种情况下,
d3.json()
采用代表文件路径的字符串。在任何情况下,都不应将d3.json()
JSON对象(或字符串以外的任何对象)作为其第一个参数。 看这里。