快速解決工作流程開發中的常見問題
JSON 格式問題大多是因為帶有不正確的換行等符號,以下是三種常用的解決方案:
功能 | .trim() | JSON.stringify() | .replace(/(\r\n|\n|\r)/gm, " ") |
---|---|---|---|
適用節點 | Set 節點 或任何表達式欄位 | Code 節點 或 HTTP Request 節點的 Body | Set 節點 或任何表達式欄位 |
核心原理 | 修剪:只移除字串頭部和尾部的空白字元 | 序列化:將 JavaScript 物件或值轉換成符合 JSON 格式的字串,會轉義特殊字元 | 取代:用正規表示式尋找並取代字串中間所有形式的換行符 |
主要用途 | 清理使用者輸入等欄位前後多餘的空格 | 準備要發送給 API 的 JSON 資料 | 將多行文字轉換為乾淨的單行文字 |
處理結果 | " abc\n " 變成 "abc" |
{a:"b\nc"} 變成 '{"a":"b\\nc"}' |
"a\r\n b \n c" 變成 "a b c" |
最常用於 Set 節點,或任何可以寫表達式的地方。
{{ $json.你的欄位名.trim() }}
這是最基礎的字串清理工具。它的功能非常專一:像剪刀一樣,只修剪掉字串「最前面」和「最後面」的所有空白字元(包含空格、換行 \n、Tab \t 等)。它完全不會動到字串中間的任何內容。
當你的資料來源可能在內容前後不小心包含了多餘的空格或換行時,例如使用者在表單中的輸入。
主要用於 Code 節點(進行複雜的資料處理),或是在 HTTP Request 節點中,當你需要手動將一個物件放入 Body 時。
// 假設 $json.myObject 是一個物件 { "key": "value\n123" }
{{ JSON.stringify($json.myObject) }}
這個函式的核心目的不是清理,而是「序列化」(Serialization)。它的工作是將一個 JavaScript 的物件或陣列,轉換成一串嚴格符合 JSON 格式標準的文字,以便在網路上傳輸或儲存。當它遇到字串中的換行符 \n 時,為了維持 JSON 格式的合法性,它會將其轉義 (Escape) 成 \\n。
當你需要將資料以 JSON 格式發送給外部 API,或需要確保資料格式符合 JSON 標準時。
Set 節點 或任何可以寫表達式的地方。
{{ $json.你的欄位名.replace(/(\r\n|\n|\r)/gm, " ") }}
這是最強力的清理方法。使用正規表示式 (Regular Expression) 來搜尋字串中的所有換行符號(包含 Windows 的 \r\n、Unix/Linux 的 \n、舊版 Mac 的 \r),並將它們全部替換成空格。這會徹底將多行文字轉換成單行文字。
當你需要將多行文字(例如從資料庫或 CSV 檔案中提取的備註欄)清理成乾淨的單行文字時,這就是你需要的標準解決方案。
{{ $json.field.trim().replace(/(\r\n|\n|\r)/gm, " ") }}
檢查節點之間的資料流向,確保輸出格式符合下一個節點的預期輸入。
確認 API 金鑰正確、權限足夠,並檢查是否有 IP 白名單限制。
使用 Split In Batches 節點處理大量資料,避免記憶體溢出。
善用 Function 節點或 Code 節點進行複雜的資料轉換操作。
調整 HTTP Request 節點的 timeout 設定,或考慮分批處理資料。
使用節點的 "Execute Previous" 功能逐步測試,查看每個階段的資料輸出。