首页 文章

Gremlin:相当打印查询会产生类似JSON的方式

提问于
浏览
2

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

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

我已经尝试了 g.V().toString() 但打印的内容与 toString() 不存在相同 .

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

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

1 回答

  • 0

    如果您使用的是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"}]}
    

相关问题