使用 JMESPath 查询 JSON
JMESPath是一种 JSON 查询语言,可用于从 JSON 文档中提取和转换元素。有关如何使用 JMESPath 的完整详细信息,请参阅JMESPath 文档。方法
n8n 提供了一种自定义方法。使用此方法可以使用 JMESPath 查询语言对 JSON 对象执行搜索。
基本语法是:
1 | |
1 | |
为了帮助理解该方法的作用,下面是等效的更长的 JavaScript:
1 2 | |
表达式必须是单行
较长的代码示例在表达式中不起作用,因为它们必须是单行的。
是一个 JSON 对象,例如上一个节点的输出。是一个用 JMESPath 查询语言编写的表达式。JMESPath
规范提供了支持的表达式列表,其教程和示例则提供了交互式示例。搜索参数顺序
JMESPath 规范中的示例遵循以下模式。n8n使用的JMESPath JavaScript 库则支持该模式。这意味着,在使用 JMESPath 文档中的示例时,您可能需要更改搜索函数参数的顺序。常见任务
本节提供一些常见操作的示例。更多示例和详细指南请参阅
JMESPath 的文档。尝试这些示例时,您需要将代码节点
模式设置为“为每个项目运行一次” 。将 JMESPath 表达式应用于具有投影的元素集合
来自
JMESPath 投影文档:投影是 JMESPath 的关键功能之一。您可以使用它将表达式应用于元素集合。JMESPath 支持五种投影:
- 列表投影
- 切片投影
- 物体投影
- 展平投影
- 过滤投影
以下示例展示了列表、切片和对象投影的基本用法。请参阅
JMESPath 投影文档,了解每种投影类型的详细说明以及更多示例。给定来自 webhook 节点的以下 JSON:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
检索所有人的名字
列表:1 2 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
获取名字的
一部分:1 2 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
使用
对象投影获取狗的年龄列表:1 2 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
选择多个元素并创建新的列表或对象
使用
Multiselect从 JSON 对象中选择元素并将它们组合成新的列表或对象。给定来自 webhook 节点的以下 JSON:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
使用多选列表获取名字和姓氏并创建包含这两个名字的新列表:
1 2 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
表达式中箭头函数的替代方案
例如,通过从代码节点返回以下代码来生成一些输入数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
您可以进行如下搜索:“查找名称为联想的商品并告诉我其类别 ID”。
1 | |