为D3 Force Directed格式化JSON的最佳方法

时间:2013-05-21 21:19:11

标签: javascript json d3.js neo4j

我目前正在使用Neo4j Graph DB来保存来自网络流量pcap的数据。我能够执行查询,并得到一个结果JSON,但我很难找到一种简单的方法将JSON格式化为节点:链接:D3的强制导向图所需的格式!

任何帮助都将不胜感激,我似乎无法找到创建此D3图表的JSON格式部分的任何链接。

1 个答案:

答案 0 :(得分:4)

强制布局需要两个数组:作为节点的对象数组,可以具有任何属性,以及链接数组,这些对象需要具有指向数组的.source和.target属性它们链接的节点的位置。无论您导出什么,都应该是节点的JSON对象数组,并使用某种散列将源和目标的id值转换为该数组中这些对象的数组位置。

所以,如果你有:

 nodes = [{name:"nodeA"},{name:"nodeB"},name:"nodeC"]

..然后这两者之间的链接数组中的链接如下所示:

 links = [{name: "linkA", source: 0, target: 1}, {name: "linkB", source: 2, target: 0}]

请注意,它指向节点对象的节点[x]的x,而不是任意的id值。因此第一个链路连接NodeA和NodeB,而第二个链路连接NodeC和NodeA。因此,在导出节点时,需要跟踪边缘的数组位置。