【问题标题】:How to return Neo4j OGM entities in GraphJSON format instead of tree format for visualization?如何以 GraphJSON 格式而不是树格式返回 Neo4j OGM 实体以进行可视化?
【发布时间】:2015-10-01 06:08:33
【问题描述】:

我正在从 Neo4j OGM(对象图映射)以类似嵌套树的格式获取 JSON 数据。 http://bl.ocks.org/mbostock/4063550

但为了可视化复杂的图形,我需要获取以下 graphJSON 格式的 JSON 数据。 http://bl.ocks.org/mbostock/4062045

即,节点和链接分开。

这是用于使用 d3.js 可视化从 Neo4j 中可视化数据 在使用 Java 执行各种操作之后。

【问题讨论】:

    标签: json d3.js neo4j spring-data-neo4j neo4j-ogm


    【解决方案1】:

    如果你的数据json是http://bl.ocks.org/mbostock/4063550中定义的格式 并且你想把它变成http://bl.ocks.org/mbostock/4062045中定义的json格式。

    做这样的事情:

    //this will make the nodes
    function flatten(root) {
        var nodes = [];
        var i = 0;
    
        function recurse(node) {
            if (node.children) node.children.forEach(recurse);
            if (!node.id) node.id = ++i;
            nodes.push(node);
        }
    
        recurse(root);
        return nodes;
    }
    //Here root is the json defined in http://bl.ocks.org/mbostock/4063550
    nodes = flatten(root);
    //this will return the links in the desired format
    links = d3.layout.tree().links(nodes);
    //check console for output
    console.log(nodes)
    console.log(links)
    

    是的,您可以动态更改数据,这有很多示例。 工作代码here 希望这会有所帮助!

    【讨论】:

    • 谢谢西里尔。其实我想在JAVA端做这个转换。
    • 是否有任何 API 可以从 JAVA 端执行此操作?我现在正在按照你提到的那样做,但我需要将关系的属性也传递给客户端。图中也有循环。所以我发现很难将 treeJSON 格式的数据可视化。
    • 对不起,我不知道如何在 JAVA 上做同样的事情...:(
    【解决方案2】:

    在链接的示例中有关于如何做到这一点的文档:

    例子在:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多