|| apoc.convert.getJsonProperty - APOC 核心文档 - Neo4j 文档

apoc.convert.getJsonProperty

详情

语法

apoc.convert.getJsonProperty(node, key [, path, pathOptions ])

描述

将给定 NODE 属性中的序列化 JSON 对象转换为等效的 Cypher 结构(例如 MAPLIST<ANY>)。

参数

名称

类型

描述

node

NODE

包含 JSON 字符串属性的节点。

key

STRING

要转换的属性键。

path

STRING

一个 JSON 路径表达式,用于从节点属性字符串中提取特定部分。默认值为:``。

pathOptions

LIST<STRING>

JSON 路径选项:('ALWAYS_RETURN_LIST', 'AS_PATH_LIST', 'DEFAULT_PATH_LEAF_TO_NULL', 'REQUIRE_PROPERTIES', 'SUPPRESS_EXCEPTIONS') 默认值为:null

返回值

ANY

使用示例

本节中的示例基于以下示例图

CREATE (:Person {json:'{a:[1,2,3]}'});
MATCH (p:Person)
RETURN apoc.convert.getJsonProperty(p, "json") AS output;
结果
输出

{a: [1, 2, 3]}

MATCH (p:Person)
RETURN apoc.convert.getJsonProperty(p, "json", "$.a") AS output;
结果
输出

[1, 2, 3]

此外,我们可以自定义 JSON 路径选项,将字符串列表作为第三个参数 (`pathOptions`) 添加,其中字符串基于 Enum<Option>。默认值为 ["SUPPRESS_EXCEPTIONS", "DEFAULT_PATH_LEAF_TO_NULL"]。请注意,我们也可以插入 [],即“无选项”。因此,使用 (n:JsonPathNode {prop: '{"columns":{"col2":{"_id":"772col2"}}}'}) 我们可以执行(使用默认 pathOptions)

MATCH (n:JsonPathNode) RETURN apoc.convert.getJsonProperty(n, 'prop', '$..columns') AS output;
结果
输出

[ {"col2": { "_id": "772col2" }}, null, null ]

或者,使用自定义路径选项

MATCH (n:JsonPathNode) RETURN apoc.convert.getJsonProperty(n, 'prop', '$..columns',  ['ALWAYS_RETURN_LIST']) AS output;
结果
输出

[ {"col2": { "_id": "772col2" }} ]

© . This site is unofficial and not affiliated with Neo4j, Inc.