目录
n8n 数据结构教程:了解 items、JSON 与节点如何处理多条数据
学习 n8n 最重要、也最容易卡住的概念就是:节点之间传递的不是一条数据,而是由多条数据组成的列表(items)。
items 是什么样的
节点的输出在 JSON 视图中如下所示:
[
{ "name": "小明", "email": "ming@example.com" },
{ "name": "小华", "email": "hua@example.com" },
{ "name": "小美", "email": "mei@example.com" }
]
这是 3 个 items。在 n8n 内部,每个 item 实际上是:
{
"json": { "name": "小明", "email": "ming@example.com" },
"binary": { }
}
json:普通数据,表达式中的$json指的就是它。binary:文件数据(图片、PDF、电子表格文件等),只有需要处理文件时才会出现。
节点会对每个 item 执行一次
这是 n8n 最重要的规则。假设上一个节点输出 3 条数据,下一个节点是「Send Email」节点:
[Google Sheets] ──3 items──▶ [Send Email]
发送 3 封邮件(每条数据发送一封)
你不需要编写循环,n8n 会自动处理。Send Email 节点中的 {{ $json.email }},处理第一条数据时是 ming@example.com,第二条时是 hua@example.com,以此类推。
节点右上角显示的数字(例如 3 items)就是输出的条数。

“为什么我的消息发送了 5 次?”
最常见的原因是:上游节点输出了 5 个 items,下游的“发送消息”节点就会执行 5 次。解决方法:
- 只想执行一次:在该节点的 Settings 中启用 Execute Once,只处理第一条数据。
- 想把多条数据合并成一条消息:先用 Aggregate 或 Summarize 节点把多条数据合并成一条。
常用的数据转换节点
| 节点 | 作用 | 示例 |
|---|---|---|
| Split Out | 把一条数据中的数组拆分成多条 | API 返回 { "orders": [...] },拆分成每笔订单一个 item |
| Aggregate | 把多条数据的字段合并成数组,变成一条 | 把 10 笔订单合并,一次发送摘要 |
| Summarize | 分组统计(求和、计数、平均值) | 按地区统计销售额 |
| Limit | 只保留前 N 条 | 只处理最新的 5 篇文章 |
| Remove Duplicates | 删除重复数据 | 同一个 Email 只发送一次 |
| Sort | 排序 | 按日期排序 |
| Filter | 只保留符合条件的数据 | 只处理金额大于 1000 的订单 |
| Edit Fields (Set) | 新增、修改、删除字段 | 只保留需要的字段 |
示例:拆分 API 返回的数组
HTTP Request 获取的数据常常是“一条 item,里面有一个数组”:
[
{
"results": [
{ "id": 1, "title": "文章 A" },
{ "id": 2, "title": "文章 B" }
]
}
]
此时下游节点只会执行一次。添加一个 Split Out 节点,字段填 results,就会变成两条:
[
{ "id": 1, "title": "文章 A" },
{ "id": 2, "title": "文章 B" }
]

项目配对(item linking)
n8n 会记住每条输出数据是由哪条输入数据生成的。因此在后续节点中,可以获取同一条数据在之前某个节点中的值:
{{ $('Google Sheets').item.json.name }}
意思是:“与当前这条数据对应的那条数据在 Google Sheets 节点中的 name”。表达式的完整说明见表达式教程。
多个输入:Merge 节点
当流程分成两条路径,又需要合并时,使用 Merge 节点:
| 模式 | 说明 |
|---|---|
| Append | 将两边的数据接在一起 |
| Combine by matching fields | 按共同字段合并(类似 SQL 的 JOIN),例如用 email 将客户数据与订单对应起来 |
| Combine by position | 第一条配第一条、第二条配第二条 |
| Choose branch | 等两边都完成后,只输出其中一边 |
二进制数据(文件)
读取文件、下载图片、收到附件时,数据会放在 binary 中;在 OUTPUT 的 Binary 选项卡中可以预览或下载。常用节点:
- Extract from File:从 CSV、Excel、PDF、JSON 文件中提取内容并转换为 items
- Convert to File:将 items 转换为 CSV、Excel、JSON 文件
- Read/Write Files from Disk:读写服务器上的文件(n8n 2.x 默认只允许访问特定文件夹)
小结
- 节点之间传递的是 items 数组
- 每个节点会对每条 item 执行一次,不需要自己编写循环
- 用 Split Out 拆分,用 Aggregate 汇总,用 Merge 合并
- 不想重复执行时,启用 Execute Once 或先合并数据
更新于 2026年10月12日