【问题标题】:Gremlin: Pretty print a query results in a JSON-like wayGremlin:以类似 JSON 的方式漂亮地打印查询结果
【发布时间】:2015-12-07 01:11:14
【问题描述】:

我想以 JSON 样式打印 Gremlin 查询结果。也就是说,一个键中的所有属性:值格式,每行一个,以及可选的边缘,例如“边缘标签”-> v[1234] 等。

在 Java 中,当我在顶点上使用 toString() 时,它只会在一行上打印我想要的内容。

我试过g.V().toString(),但打印出来的结果就像toString() 不存在一样。

也许一些 Groovy 技巧可以与 getProperties() 结合使用?

(有一个类似的问题,How to print out Gremlin pipe / traversal results,但这是不同的。)

【问题讨论】:

    标签: pretty-print gremlin


    【解决方案1】:

    如果您使用 Gremlin 2.x,您可以使用 GraphSONUtility http://www.tinkerpop.com/docs/javadocs/blueprints/2.6.0/com/tinkerpop/blueprints/util/io/graphson/GraphSONUtility.html

             \,,,/
             (o o)
    -----oOOo-(_)-oOOo-----
    gremlin> g = new TinkerGraph()
    ==>tinkergraph[vertices:0 edges:0]
    gremlin> v = g.addVertex()
    ==>v[0]
    gremlin> v.setProperty('name','jason')
    ==>null
    gremlin> v.setProperty('type','person')
    ==>null
    gremlin> w = g.addVertex()
    ==>v[1]
    gremlin> w.setProperty('name','ondra')
    ==>null
    gremlin> w.setProperty('type','person')
    ==>null
    gremlin> e = v.addEdge('chat', w)
    ==>e[2][0-chat->1]
    gremlin> e.setProperty('datestamp','20150910')
    ==>null
    gremlin> GraphSONUtility.jsonFromElement(v, null, GraphSONMode.NORMAL)
    ==>{"name":"jason","type":"person","_id":"0","_type":"vertex"}
    gremlin> GraphSONUtility.jsonFromElement(w, ['name'] as Set, GraphSONMode.NORMAL)
    ==>{"name":"ondra","_id":"1","_type":"vertex"}
    gremlin> GraphSONUtility.jsonFromElement(e, null, GraphSONMode.NORMAL)
    ==>{"datestamp":"20150910","_id":"2","_type":"edge","_outV":"0","_inV":"1","_label":"chat"}
    

    如果你想变换整个图,可以使用GraphSONWriter http://www.tinkerpop.com/docs/javadocs/blueprints/2.6.0/com/tinkerpop/blueprints/util/io/graphson/GraphSONWriter.html

    gremlin> os = new FileOutputStream('/tmp/graph.json')
    ==>java.io.FileOutputStream@7889a1ac
    gremlin> GraphSONWriter.outputGraph(g, os)
    ==>null
    gremlin> new File('/tmp/graph.json').text
    ==>{"mode":"NORMAL","vertices":[{"name":"jason","type":"person","_id":"0","_type":"vertex"},{"name":"ondra","type":"person","_id":"1","_type":"vertex"}],"edges":[{"datestamp":"20150910","_id":"2","_type":"edge","_outV":"0","_inV":"1","_label":"chat"}]}
    

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 2015-11-06
      • 1970-01-01
      • 2014-07-06
      • 2020-09-16
      • 1970-01-01
      • 2014-05-19
      • 2015-07-03
      相关资源
      最近更新 更多