Skip to Content
扩展JSON 扩展

JSON 扩展

版本说明: 自 v0.1.2 版本起,我们将 JSON 支持作为内置功能,因此在使用前无需安装 JSON 扩展。对于 NeuG 版本 < 0.1.2,JSON 支持通过扩展提供,需要在使用前执行 INSTALL json; LOAD json;。详情请参见 LOAD FROM 参考

JSON(JavaScript 对象表示法)是一种广泛使用的数据格式,用于 Web API 和数据交换。NeuG 通过扩展框架支持 JSON 文件导入功能。加载 JSON 扩展后,用户可以直接使用 LOAD FROM 语法加载外部 JSON 文件,或使用 COPY TO 语法将查询结果导出到 JSON 文件。

安装扩展

INSTALL JSON;

加载扩展

LOAD JSON;

使用 JSON 扩展

支持的格式

导入(LOAD FROM)和导出(COPY TO)都支持两种 JSON 格式:JSON 数组JSONL(JSON 行)。格式会根据文件扩展名自动推断,因此无需显式配置。

扩展名格式描述
.jsonJSON 数组一个包含所有结果行对象的 JSON 数组。
.jsonlJSON 行每行一个 JSON 对象(与 JSONL 导入格式相同)。

JSON 数组格式

JSON 数组在单个数组结构中包含多个对象:

[ {"id": 1, "name": "Alice", "age": 30}, {"id": 2, "name": "Bob", "age": 25} ]

对于具有 .json 扩展名的路径(例如 person.json),NeuG 会自动将文件视为 JSON 数组进行导入和导出。

JSONL 格式 (JSON Lines)

JSONL 格式每行包含一个 JSON 对象:

{"id": 1, "name": "Alice", "age": 30} {"id": 2, "name": "Bob", "age": 25}

对于扩展名为 .jsonl 的路径(例如 person.jsonl),NeuG 在导入和导出时会自动将文件视为 JSONL 格式(每行一个 JSON 对象)。

从 JSON 加载

基本 JSON 数组加载

从 JSON 数组文件中加载所有列:

LOAD FROM "person.json" RETURN *;

JSONL 格式加载

从 JSONL 文件加载数据。当路径具有 .jsonl 扩展名时,格式会被自动检测;

LOAD FROM "person.jsonl" RETURN *;

列投影

从 JSON 数据中仅返回特定列:

LOAD FROM "person.jsonl" RETURN fName, age;

列别名

使用 AS 为列分配别名:

LOAD FROM "person.jsonl" RETURN fName AS name, age AS years;

注意: LOAD FROM 支持的所有关系操作 — 包括类型转换、WHERE 过滤、聚合、排序和限制 — 在 JSON 文件中都以相同方式工作。完整的操作列表请参见 LOAD FROM 参考文档

导出为 JSON

加载 JSON 扩展后,你可以使用 COPY TO 语法将查询结果导出为 JSON 或 JSONL 格式。

导出为 JSON 数组

将查询结果导出为单个 JSON 数组文件:

COPY (MATCH (p:person) RETURN p.*) TO 'person.json';

这会产生如下文件:

[{"id": 1, "name": "marko", "age": 29},{"id": 2, "name": "vadas", "age": 27}]

导出为 JSONL

通过使用 .jsonl 路径导出为 JSONL(每行一个对象):

COPY (MATCH (p:person) RETURN p.*) TO 'person.jsonl';

示例输出:

{"id": 1, "name": "marko", "age": 29} {"id": 2, "name": "vadas", "age": 27}

JSONL 非常适合大型结果集和流式处理。你可以使用 BATCH_SIZE 参数控制每个批次写入的行数:

参数描述默认值
BATCH_SIZE单个批次中写入的最大行数。1024

有关导出选项和最佳实践的更多信息,请参见导出数据

Last updated on