【发布时间】:2014-07-19 02:18:57
【问题描述】:
我正在尝试将可折叠树与可视化工具集成:
http://bl.ocks.org/robschmuecker/7880033
谁能告诉我如何让这段代码在没有flare.json 文件的情况下运行。我有 json 格式的数据,我需要使用该 json 输出来运行此代码。我将字符串转换为 json 格式的代码如下:
<html>
<body>
<script>
//example dat
var str = "Charles Johnson\t4184\nCharles Johnson-Donald Williams\t8385\nCharles Johnson-Donald Williams-Daniel Fertig\t428\nCharles Johnson-Donald Williams-Daniel Fertig-Lino Walling\t1091\nCharles Johnson-Donald Williams-Daniel Fertig-Lino Walling-Jim Cooke\t318";
var lines = str.split("\n");
var name_ = lines[0].split("\t")[0];
var val_ = lines[0].split("\t")[1];
//alert(val_);
var obj = {name: name_,
children: [],
value: val_};
//process all lines
for (var i=1;i<lines.length;i++) {
var addr = lines[i].split("\t")[0].split("-");
var val = lines[i].split("\t")[1];
//alert(val);
var local_obj = obj;
var recursive_obj;
//alert(addr.length);
for (var j=1;j<addr.length;j++) {
recursive_obj = null;
for (var k=0;k<local_obj.children.length;k++) { //Doest get used for first instance
if (local_obj.children[k].name==addr[j]) {
recursive_obj=local_obj.children[k];
}
}
if (recursive_obj==null) {
recursive_obj = {name: addr[j],
children: [],
value: null
};
local_obj.children.push(recursive_obj);
}
local_obj=recursive_obj;
}
recursive_obj.value=val;
}
//print a json result
alert(JSON.stringify(obj));
</script>
</body>
</html>
此代码将字符串转换为 Json 格式。有人可以帮助我使用此代码而不是
treeJSON = d3.json("flare.json", function(error, treeData){}
并使可折叠树运行。如果有人可以帮助我,我将不胜感激。谢谢你:)
最好的问候 莫哈德
<!DOCTYPE html>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="try.js"></script>
<body>
<div id="tree-container"></div>
</body>
</html>
【问题讨论】:
-
如果您的数据被格式化为类似于
flare.json中的数据,只需在该代码中将其用作data并取出d3.json行。 -
谢谢@Lars...您能否详细说明一下。 obj 变量具有有效 json 格式的数据。我该如何从那开始呢?任何帮助将不胜感激:)
-
整个代码都在 "treeJSON = d3.json("flare.json", function(error, treeData) " 函数内,所以我很困惑我必须在哪里进行更改:/跨度>
标签: javascript json d3.js