一尘不染

d3 js-在没有http get的情况下加载json

json

我正在学习d3。有某些方法可以在d3
js
中加载数据。但是他们似乎都进行了HTTP
GET。在我的场景中,我已经在字符串中包含了json数据。如何使用此字符串代替发出另一个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”并避免对服务器的异步调用?谢谢。


阅读 230

收藏
2020-07-27

共1个答案

一尘不染

只需将d3.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
2020-07-27