目錄

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)就是輸出的筆數。

Split Out 之後節點處理多筆資料
執行後連線上會顯示每一段傳遞了幾個 items;If 節點把資料分成 true / false 兩路

「為什麼我的訊息被發了 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" }
]
Split Out 把陣列拆成 3 筆資料
Split Out:INPUT 是 1 筆含 results 陣列的資料,OUTPUT 變成 3 筆

項目配對(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日