Javascript 将JSON中包含内容的JS变量传递给d3.JSON函数

Javascript 将JSON中包含内容的JS变量传递给d3.JSON函数,javascript,jquery,json,d3.js,Javascript,Jquery,Json,D3.js,我使用的是D3.js拖放、可缩放、平移、可折叠树,可自动调整大小,如下所示: 如本例所示,dndTree.js有一个函数d3.json,该函数将json文件位置作为参数(在本例中为“flare.json”): 由于我的JSON文件是动态创建的,所以我希望将此JSON存储到JS变量中,并将此变量传递到函数中并形成树 到目前为止,我能够获取JSON数据,对其进行解析并将其存储在JS变量中,但当我将此变量传递到d3.JSON函数而不是文件中时,该函数无法识别变量(console.log导致未定义)内容

我使用的是D3.js拖放、可缩放、平移、可折叠树,可自动调整大小,如下所示:

如本例所示,dndTree.js有一个函数d3.json,该函数将json文件位置作为参数(在本例中为“flare.json”):

由于我的JSON文件是动态创建的,所以我希望将此JSON存储到JS变量中,并将此变量传递到函数中并形成树

到目前为止,我能够获取JSON数据,对其进行解析并将其存储在JS变量中,但当我将此变量传递到d3.JSON函数而不是文件中时,该函数无法识别变量(console.log导致未定义)内容,并且由于它无法读取任何JSON内容,因此它不会创建树


关于如何将此变量传递到函数中以创建树,有什么建议吗

在本例中,您不需要调用
d3.json
——在您发布的示例代码中,
treeData
保存解析后的json。如果您已经有了,那么您所需要做的就是调用存储在
treeData

中的变量。最好向代码展示您是如何做到这一点的:变量是如何生成和使用的。您能展示一下json结构的示例吗?这将说明如何映射树;xhReq.open(“GET”,“/folder/file.json”,false);xhReq.send(空);var jsonObject=JSON.parse(xhrq.responseText);当我在此之后使用console.log(jsonObject)时,它将以有效格式打印整个JSON。我将这个变量传递给d3.json函数:treeJSON=d3.json(jsonObject,function(error,treeData){当我使用console.log(jsonObject)时在函数内部,它会导致未定义,因此不会创建树。我是否可以通过传递var使d3.json正确读取并创建树?json结构与示例(flare.json)中显示的结构相似.你的意思是我必须用jsonObject替换treeData?是的。
treeData
保存JSON。因此我尝试了以下方法:treeJSON=function(错误,jsonObject){//Calculate total nodes,max label length var totalNodes=0;var maxlabelllength=0;//拖放变量var selectedNode=null;……但这一行出现错误:root.x0=viewerHeight/2;Saying无法确定未定义的viewerHeight。请删除其中包含
d3.json
的行以及在函数内的块中,使用存储JSON的变量,而不是
treeData
。获取JSON不需要函数调用。
treeJSON = d3.json("flare.json", function(error, treeData) {

// Calculate total nodes, max label length
var totalNodes = 0;
var maxLabelLength = 0;