n8n 表達式n8n expressionn8n 語法n8n 變數新手

n8n 表達式語法入門:{{ }} 怎麼寫才不會出錯

n8n 的 {{ }} 表達式是新手最常卡的小坑。這篇用最白話的方式教你看懂雙大括號、$json 變數和跨節點抓資料的寫法,附上四組會出錯的反例與正確寫法對照,免背語法,看完就能在任何節點欄位裡準確引用上一站傳來的資料。

N8NMarket 2026年6月10日

n8n 表達式是寫在 {{ }} 雙大括號裡的小段 JavaScript,用來在節點欄位裡動態抓取上一站的資料。學會 $json、跨節點引用與幾個內建變數,就能讓欄位的值隨資料自動變化,而不是寫死。

設定 n8n 節點時,你遲早會碰到一個欄位想填「上一個節點傳來的姓名」,而不是固定文字。這時就要用表達式。它不難,但語法有幾個固定規則,踩錯就跳紅字。把這幾條記熟,表達式從此不再是門檻。

本文是《第一個 n8n 工作流:從零到自動化的完整入門指南》系列的延伸文章,補上新手最常卡的表達式語法。

先分清楚:固定值 vs 表達式

n8n 每個欄位右上角有一個切換鈕,分成兩種模式:

  • Fixed(固定值):你打什麼就是什麼,例如填 王小明,這格永遠是王小明。
  • Expression(表達式):值由 {{ }} 裡的運算決定,會隨每筆資料變動。

切到 Expression 模式,欄位會變色,這時打的內容才會被當成表達式解析。新手最常見的錯,是在 Fixed 模式裡打 {{ $json.name }},結果整串文字被原封不動寫出去。先確認模式對了,再寫內容。

核心變數:$json 抓上一站的資料

最常用、九成場景都靠它的就是 $json。它代表「上一個節點傳給這個節點的當前那筆資料」。

假設上一個節點吐出這樣一筆資料:

{
  "name": "王小明",
  "email": "[email protected]",
  "order": { "id": 1024, "amount": 580 }
}

對應的表達式寫法:

  • 抓姓名:{{ $json.name }} → 王小明
  • 抓 email:{{ $json.email }}[email protected]
  • 抓巢狀的訂單編號:{{ $json.order.id }} → 1024
  • 抓金額:{{ $json.order.amount }} → 580

規則就一條:用點 . 一層一層往下鑽。資料長什麼樣,左欄 INPUT 看得到,照著欄位名稱抄即可。n8n 官方對表達式的完整定義在 n8n 表達式官方文件,想看進階用法可以參考。

跨節點抓資料:$(‘節點名稱’)

跨節點抓資料:$('節點名稱')

有時你要的資料不在上一站,而在更前面的某個節點。這時用 $('節點名稱')

{{ $('Webhook').item.json.name }}

意思是「去名叫 Webhook 的那個節點,抓它輸出的當前那筆資料的 name」。節點名稱要跟畫布上顯示的完全一致,包含空格和大小寫。把節點重新命名後表達式失效,多半就是名稱對不上。

內建變數速記

n8n 還有幾個好用的內建變數,新手先記這幾個:

  • {{ $now }}:現在的時間,常拿來蓋時間戳。
  • {{ $today }}:今天的日期。
  • {{ $json.email.toLowerCase() }}:表達式裡可以直接接 JavaScript 方法,這裡把 email 轉小寫。

最後一個透露了一件事:{{ }} 裡其實能寫 JavaScript。字串、數字的處理方法(像 .trim().toUpperCase().length)都能用,語法和一般 JavaScript 一致,可對照 MDN 的 JavaScript 字串說明

會出錯的反例 vs 正確寫法

會出錯的反例 vs 正確寫法

把這四組對照記起來,能避開新手九成的錯:

  • 忘了切 Expression 模式:在 Fixed 模式打 {{ $json.name }} → 整串被當文字。先切模式
  • 大括號數量錯:寫成 { $json.name }(單括號)→ 不會解析。一定是雙大括號 {{ }}
  • 欄位名打錯:{{ $json.Name }} 但資料是小寫 name → 抓到空值。大小寫要一致
  • 巢狀漏層:{{ $json.id }} 但 id 包在 order 裡 → 空值。要寫 {{ $json.order.id }}

跳紅字或抓到空值別慌,回左欄 INPUT 對照真實資料結構,九成問題一眼就看出來。看懂節點輸入輸出的方法,在n8n 介面導覽的 NDV 章節有圖解。

接下來

表達式是把各個節點「黏」起來的膠水。串 Google Sheets 寫入欄位、設定 IF 條件、組 API 請求參數,全都會用到它。想要一張可以隨時翻的對照表,收藏n8n 表達式速查表;想實際派上用場,去n8n 連接 Google Sheets 教學把資料寫進試算表試一次,比讀十遍都有效。

常見問題

n8n 的 {{ }} 表達式一定要懂 JavaScript 嗎?

不用。九成場景只要會 {{ $json.欄位名 }} 這種抓資料的寫法就夠。{{ }} 裡確實能寫 JavaScript,但那是進階需求,新手先把點記法(一層層用 . 往下鑽)練熟即可。

為什麼我的表達式被原封不動印出來?

多半是欄位還停在 Fixed(固定值)模式。要先點欄位右上的切換鈕切到 Expression 模式,欄位變色後 {{ }} 才會被當表達式解析,否則會被當成純文字。

$json 和 $(‘節點名稱’) 差在哪?

$json 抓的是「上一個節點」傳來的當前資料,最常用。$('節點名稱') 用來抓更前面某個指定節點的輸出,名稱要跟畫布上完全一致。當資料不在上一站時才需要它。

表達式抓到空值怎麼辦?

回到左欄 INPUT 看資料的真實結構,逐字比對欄位名稱的大小寫和巢狀層級。最常見原因是大小寫不符,或漏了中間一層(例如該寫 $json.order.id 卻寫成 $json.id)。


語法通了,剩下的就是多寫幾次形成肌肉記憶。回到第一個 n8n 工作流入門指南,把表達式用在真實流程裡,你會發現它其實是 n8n 裡最好用的工具。