d3 js – 加载没有http获取的json
我正在学习D3。 在d3 js 中加载数据有一定的方法 。 但是他们都似乎做了一个HTTP GET。 在我的情况下,我已经有一个string中的json数据。 我怎样才能使用这个string,而不是另一个http请求? 我试图寻找这个文件,但没有发现。
这工作:
d3.json("/path/flare.json", function(json) { //rendering logic here }
现在,如果我有:
//assume this json comes from a server (on SAME DOMAIN) var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}';
如何在d3中使用已计算的'myjson'并避免对服务器进行asynchronous调用? 谢谢。
只需用d3.json
replaced3.json
json = JSON.parse( myjson );
IE:
var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}'; // d3.json("/path/flare.json", function(json) { #delete this line json = JSON.parse( myjson ); //add this line //rendering logic here //} #delete this line
更新09/2013
原始代码已经改变。 所以varname json
应该是root
:
// d3.json("flare.json", function(error, root) { #delete this line root = JSON.parse( myjson ); //add this line //rendering logic here //} #delete this line
根据这个例子:
http://phrogz.net/JS/d3-playground/#StockPrice_HTML
在这里,他们将graphics数据存储在variables$ data中,并通过.data($ data)函数进行设置。
我将这个方法应用到你正在使用的任何图表上。
chumkiu的答案对我很好,但需要做一些调整 – 在最新版本的d3泡泡图中,您需要定义root而不是json,如
root = JSON.parse( myjson );
或者,你也可以在当然代码的其余部分用“json”代替“root”。 🙂
对于任何人回答有关使用本地数据集的d3节点链接树的问题,这个答案对我来说非常合适 – 非常感谢这个页面上的贡献者。