使用 JMESPath 查询 JSON#
JMESPath 是 JSON 的查询语言,您可以使用它从 JSON 文档中提取和转换元素。有关如何使用 JMESPath 的完整详细信息,请参阅 JMESPath 文档。
jmespath()
方法#
n8n 提供了一个自定义方法 jmespath()
。使用此方法使用 JMESPath 查询语言对 JSON 对象执行搜索。
基本语法是:
1 |
|
1 |
|
为了帮助理解该方法的作用,以下是等效的更长 JavaScript 代码:
1 2 |
|
表达式必须是单行的
更长的代码示例在表达式中不起作用,因为它们必须是单行的。
object
是一个 JSON 对象,例如上一个节点的输出。searchString
是用 JMESPath 查询语言编写的表达式。JMESPath 规范提供了支持的表达式列表,而他们的教程和示例提供了交互式示例。
搜索参数顺序
JMESPath 规范中的示例遵循 search(searchString, object)
模式。n8n 使用的 JMESPath JavaScript 库支持 search(object, searchString)
。这意味着在使用 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 |
|
选择多个元素并创建新列表或对象#
使用多选从 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 |
|
您可以执行类似“找到名称为 Lenovo 的项目并告诉我它们的类别 ID”的搜索。
1 |
|
🚀 与作者交流

📚 教程 💡 案例 🔧 技巧

⚡ 快答 🎯 定制 🚀 支持