neo4j/cypher:字符串到映射的内联转换

neo4j/cypher:字符串到映射的内联转换,neo4j,cypher,Neo4j,Cypher,这可能是显而易见的,但对我来说并非如此: 我有一个JSON对象,它有一个包含字符串化JSON的属性(不要问为什么,必须是这样) 当我解开对象并获取该属性(键)时,有没有方法转换为与密码查询内联的映射 WITH {input} AS S UNWIND S AS stat WITH stat.key.str as K, stat.value as value UNWIND K as key RETURN key, value 返回: key

这可能是显而易见的,但对我来说并非如此: 我有一个JSON对象,它有一个包含字符串化JSON的属性(不要问为什么,必须是这样) 当我解开对象并获取该属性(键)时,有没有方法转换为与密码查询内联的映射

WITH {input} AS S
UNWIND S AS stat
WITH stat.key.str as K, stat.value as value
UNWIND K as key
RETURN key, value
返回:

key value
-----------------------------------------------------------------------------------------
{"role":"consumer","ipproto":"TCP","l7proto":"tcp:80","port":80,"dir":""} 156
{"role":"consumer","ipproto":"TCP","l7proto":"tcp:443","port":443,"dir":""} 223
{"role":"consumer","ipproto":"TCP","l7proto":"MSN","port":1863,"dir":""} 106208
键值
-----------------------------------------------------------------------------------------
{role:“consumer”,“ipproto:“TCP”,“l7proto:”TCP:80”,“port:80”,“dir:”}156
{role:“consumer”,“ipproto:”TCP”,“l7proto:”TCP”,“l7proto:”TCP:443”,“port:443”,“dir:”}223
{“role:”consumer”,“ipproto:”TCP”,“l7proto:”MSN”,“port:”1863,“dir”:“}106208
是否可以解析/加载key中的字符串值以将其作为映射读取,还是必须在cypher查询之外进行转换

WITH {input} AS S
UNWIND S AS stat
WITH stat.key.str as K, stat.value as value
UNWIND K as key
RETURN key, value
抱歉-我对neo4j和cypher都不熟悉…

您需要这样做,特别是
apoc.convert.fromJsonMap()
将其转换为cypher映射。以下是您的使用方法:

WITH {input} AS S
UNWIND S AS stat
WITH stat.key.str as K, stat.value as value
UNWIND K as key
WITH apoc.convert.fromJsonMap(key) as map, value
...