Вы можете сделать это сериализацией вложенной карты в JSon строку и нажать на node.If вашего требования является
{address:{firstline:"a",secondline:"b"},name:"ABC"}
Затем перебирать карты, если значение не является допустимым типа в Neo4j затем преобразовать его в json string. т.е. вы конвертируете
{firstline:"a",secondline:"b"}==>json string.
В cypher он действует как нормальная строка.SO работает. Когда вы извлекаете данные из узла для де-сериализации свойств для собственных объектов.
Недостатком этого подхода является то, что вам нужно де-сериализовать каждое свойство, потому что мы не знаем, является ли значение нормальной строкой или это строка json, содержащая вложенную карту.
Так что мое решение это, при преобразовании в JSON строку, которую вы обратите внимание, какие ключи преобразовываются в JSON и сохранить эту информацию в узле с определенным ключом, например: json_keys=['address']
при чтении только конвертировать эти ключи в json_keys массив.
1)your map = {address: {firstline:"a", secondline:"b"}, name:"ABC"}
2)convert to json = {address: '{firstline:"a", secondline:"b"}', name:"ABC"}
3)note which keys are converted = {address: '{firstline:"a", secondline:"b"}', name:"ABC",json_keys=["address"]}
Hi! Было бы лучше, если вы проверите [Формат ответов на вопросы] (https://stackoverflow.com/help/how-to-answer) для будущих усилий по переполнению стека. -Спасибо – Momin