Результат запроса Neo4j и Spring-data Map в Jackson JsonNode

Как мне использовать neo4j и spring-data, чтобы преобразовать значение зашифрованного запроса в JsonNode (Джексон).

Пример запроса:

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

Я хочу, чтобы результат запроса был преобразован в Json (желательно JsonNode Джексона)

Поскольку результат уже находится в формате json и передается в формате json, это должно быть довольно легко, но я не смог найти решение, как это сделать.


person Nachshon Schwartz    schedule 02.03.2015    source источник


Ответы (1)


Вы всегда можете отправить свой шифр на транзакционную конечную точку neo4j.

Если вы разместили что-то подобное ...

{
  "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": [ ]
}
person Dave Bennett    schedule 02.03.2015
comment
Не совсем то, что я ищу, так как мне нужны и вложенные объекты ... в примере всего два уровня объектов, но я хочу использовать его для более крупных конечно вложенных объектов - person Nachshon Schwartz; 03.03.2015
comment
Я обновил запрос и ответ, включив в данные имена свойств. Ближе? - person Dave Bennett; 03.03.2015
comment
Конечное. Нет бесконечности ... как бы выглядел мой пример select, если бы я использовал его здесь? Будет ли это просто строка на объект ... потому что это то, что я ищу? - person Nachshon Schwartz; 03.03.2015
comment
хех - да, заметил, что после - удалил эту часть - извинения - person Dave Bennett; 03.03.2015
comment
Я обновил ответ, чтобы показать другой узел, возвращенный с идентификатором и набором цветов - person Dave Bennett; 03.03.2015
comment
Мне нужен только один столбец, содержащий вложенные объекты, как в исходном примере - person Nachshon Schwartz; 03.03.2015
comment
Давайте продолжим это обсуждение в чате. - person Dave Bennett; 03.03.2015
comment
Ищу решение для Spring-Data - person Nachshon Schwartz; 09.03.2015