我已将d3的force.js用于可视化目的。
以下是完整js的代码段:
d3.json("test.json", function(json) { force.nodes(json.nodes) .links(json.links) .start(); });
test.json文件当前与js文件位于同一位置。工作正常。这些文件位于我的Web应用程序的“页面”文件夹中。如果我使用http网址“ http:// localhost:8084 / FMS / faces / pages / test.json”代替“ test.json”,则效果很好。但是,如果我使用“ /Users/subashbasnet/test.json”,即文件路径代替“ test.json”,则它不起作用。
如果我将json输出设置为var并代替“ test.json”使用,它将无法正常工作。例如:
var myjson = "{"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}"; d3.json(myjson, function(json) { force.nodes(json.nodes) .links(json.links) .start(); });
我的.jsp文件具有以下输出:
<html> <head></head> <body> <pre>{"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}</pre> </body> </html>
我应该如何将json中的json <pre>替换为“ test.json”。
<pre>
亟待解决任何一个问题。提前致谢。
如果要在JSP中生成数据,则可以简单地将其执行
<script>var theData = (<%= unquotedJsonData %>);</script>
直接生成JS对象而不是JSON字符串
<script>var theData = ({"nodes":[...]});</script>
然后,您无需使用d3的json解析器,只需执行
force.nodes(theData.nodes)....