目錄
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日