Neo4j 和 Spring-data Map 查询结果到 Jackson JsonNode

Posted

技术标签:

【中文标题】Neo4j 和 Spring-data Map 查询结果到 Jackson JsonNode【英文标题】:Neo4j and Spring-data Map query result to Jackson JsonNode 【发布时间】:2015-05-03 09:23:25 【问题描述】:

我将如何使用 neo4j 和 spring-data 将密码查询的值转换为 JsonNode (Jackson)。

查询示例:

Match (a:Moo)
return 
    id: id(a),
    list: [color: a.color, color: a.otherColor]

我希望将查询的结果转换成Json(最好是Jackson的JsonNode)

由于结果已经是 json 格式,并且是以 json 格式传输的,这应该相当容易,但我还没有找到解决方法。

【问题讨论】:

【参考方案1】:

您可以随时将您的密码发布到neo4j transactional end point。

如果您发布了这样的内容...


  "statements": [
    
      "statement": "match (a:Moo name: 'A') RETURN id: id(a) as id, list : [colour: a.colour, colour: a.other_colour] as list"
    
  ]

你会得到这样的东西......


  "results": [
    
      "columns": [
        "id",
        "list"
      ],
      "data": [
       
         "row": [
             "id" : 2723,
             "list" :
               [
                 "colour" : "black",
                 "colour" : "blue"
               ]
             
         ]
       ,
       
         "row": [
             "id" : 2724,
             "list" :
               [
                 "colour" : "green",
                 "colour" : "purple"
               ]
             
         ]
       
     ]
   
 ],
 "errors": [ ]

或者,如果您希望将属性值组合在同一个对象中,您可以执行类似的操作,您可以发布此密码并返回


  "statements": [
    
      "statement": "match (a:Moo name: 'A') RETURN id: id(a), list: [ colour: a.colour,colour: a.other_colour] as data"
    
  ]

并返回类似的东西


  "results": [
    
      "columns": [
        "data"
      ],
      "data": [
       
         "row": [
             "id" : 2723,
             "list" :
               [
                 "colour" : "black",
                 "colour" : "blue"
               ]
             
         ]
       ,
       
         "row": [
             "id" : 2724,
             "list" :
               [
                 "colour" : "green",
                 "colour" : "purple"
               ]
             
         ]
       
     ]
   
 ],
 "errors": [ ]

【讨论】:

不是我真正想要的,因为我也想要嵌套对象......该示例只有两个级别的对象,但我想将它用于更大的有限嵌套对象 我更新了查询和响应以在数据中包含属性名称。更近一点? 有限。没有无限...如果我在这里使用我的示例选择看起来如何?会不会只是每个对象一行...因为这就是我要找的东西? 嘿 - 是的,注意到之后 - 删除了那部分 - 道歉 我更新了响应以显示另一个节点返回一个 id 和一组颜色

以上是关于Neo4j 和 Spring-data Map 查询结果到 Jackson JsonNode的主要内容,如果未能解决你的问题,请参考以下文章

不懂Neo4j?没关系,先学增删改查

Neo4j 知识图谱

neo4j初次使用学习简单操作-cypher语言使用

Neo4j HA环境配置

Neo4j 第十一篇:Cypher函数

使用 spring-boot 和 spring-data 全局启用休眠过滤器