|| apoc.load.jsonParams - APOC 核心文档 - Neo4j 文档

apoc.load.jsonParams

该过程的“Params”名称指的是连接到给定 URL 时 HTTP 请求的 headerspayload 被参数化,而不是 Neo4j 的 $ 参数。
详细信息

语法

apoc.load.jsonParams(urlOrKeyOrBinary, headers, payload [, path, config ]) :: (value)

描述

如果给定的 JSON 文档是 LIST<ANY>,则从 URL(例如 web-API)加载 JSON 文档作为值流。如果给定的 JSON 文件是 MAP,则此过程将导入单个值。

输入参数

名称

类型

描述

urlOrKeyOrBinary

ANY

要导入数据的文件名或二进制数据。请注意,URL 需要正确编码以符合 URI 标准。

headers

MAP

连接到给定 URL 时使用的 HTTP 头。

payload

STRING

连接到给定 URL 时发送的负载。

path

STRING

用于从 JSON 文档中提取特定子部分的 JSON 路径表达式(通过 JSONPath 表达式提取)。默认值为:``。

config

MAP

{ failOnError = true :: BOOLEAN, pathOptions :: LIST<STRING>, compression = "NONE" :: ["NONE", "BYTES", "GZIP", "BZIP2", "DEFLATE", "BLOCK_LZ4", "FRAMED_SNAPPY"] }。默认值为:{}

返回参数

名称

类型

描述

value

MAP

从给定文件加载的数据映射。

从文件读取

默认情况下,文件系统导入功能已禁用。我们可以通过在 apoc.conf 中设置以下属性来启用它:

apoc.conf
apoc.import.file.enabled=true

如果我们尝试使用任何导入过程而没有首先设置此属性,我们将收到以下错误消息:

Failed to invoke procedure: Caused by: java.lang.RuntimeException: Import from files not enabled, please set apoc.import.file.enabled=true in your apoc.conf

导入文件从 import 目录读取,该目录由 server.directories.import 属性定义。这意味着我们提供的任何文件路径都是相对于此目录的。如果尝试从绝对路径读取,例如 /tmp/filename,我们将收到类似以下内容的错误消息:

Failed to invoke procedure: Caused by: java.lang.RuntimeException: Can’t read url or key file:/path/to/neo4j/import/tmp/filename as json: /path/to/neo4j//import/tmp/filename (No such file or directory)

我们可以通过在 apoc.conf 中设置以下属性来启用从文件系统中任何位置读取文件:

apoc.conf
apoc.import.file.use_neo4j_config=false

Neo4j 现在将能够从文件系统中的任何位置读取,因此在设置此属性之前请确保这是您的意图。

使用示例

我们可以通过将配置参数 method 设置为 GET 来向 JSON 端点执行 GET 请求。

以下内容向 Wikipedia Action API 发出 GET 请求

CALL apoc.load.jsonParams(
  "https://en.wikipedia.org/w/api.php?action=query&titles=Neo4j&format=json&formatversion=2",
  {method: "GET"},
  "",
  "$.query.pages[0]"
) YIELD value
RETURN value
结果
value

{ "title": "Neo4j", "ns": 0, "pageid": 25505874 }

请注意,URL 需要正确编码。这可以使用 apoc.text.urlencode 来实现。

WITH apoc.text.urlencode("Auvergne-Rhône-Alpes") AS title
CALL apoc.load.jsonParams(
  "https://en.wikipedia.org/w/api.php?action=query&titles="+title+"&format=json&formatversion=2",
  {method: "GET"}, "", "$.query.pages[0]"
) YIELD value
RETURN value.title AS title, value.pageid AS pageid
结果
title pageid

Auvergne-Rhône-Alpes"

45093325

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