Skip to content
Darrell TW

n8n 踩到坑 - Line Invalid JSON 錯誤

blog-n8n-invalid-json-bg

invalid json

在 n8n 上遇到 JSON parameter needs to be valid JSON 或是 Invalid JSON 的錯誤?

這真的是蠻多人會發問的問題 在社群上也看到很多人討論 我自己偶爾也會遇到

首先這問題的來源最有可能是因為前面接的 AI Model 來產生文字 AI產生的格式有時候不太受控

可能是純文字、JSON、markdown 等等 先來看看幾個常見可能

n8n-line_invalid_json_error_message

兩個雙引號

n8n 有個快速檢查的方式 通常應該都是用 expression

那其實錯誤時,當下都有完整的 preview 可以看

Expression 右下角的按鈕可以開啟完整的 Expression preview

這時候可以很清楚的看到 Expression 的資料是什麼

n8n-line_invalid_json-double_quotes_issue

以這個 case 來說,就是 OpenAI 的輸出裡面,已經包含了 " 雙引號,而如果我們在外面又用雙引號,就會是 "" text "" 兩個雙引號就會造成很常見的 invalid json

文字內文包含雙引號

另外一個比較不好發現的情況

是一段文字內,裡面又包含了其他雙引號

n8n-line_invalid_json-double_quotes_between_string

例如 "輝達落腳"北士科" 地上權都審延遲 北市府竟遭新壽回:無可奉告"

北士科 這幾個字的旁邊多一個雙引號,有時候是 AI 造成的,也有可能是 API 在撈資料時對方的資料就是有這個雙引號存在 那就會一樣造成 invalid json

把 Object 直接送出去

n8n-line_invalid_json-send_object_as_object_object

有時候可能因為 AI 的 output 不穩定,也有可能是人為因素用錯變數 導致其實會看到 [object Object]

這也是個常見的問題

n8n-line_invalid_json-send_object_as_object_object_check_input

建議可以回頭看看是不是 input 選錯,可以仔細觀察

n8n-line_invalid_json-n8n_input_type

像是 input schema 左邊都有個小小的 icon 表示他的 type 是什麼 以 Line 的 Push Message API 來說,都要用 String 的形式來送出比較不會出錯

用網站來檢查可能的錯誤原因

如果你檢查過上面的幾個常見錯誤,還找不到原因的話

這時候就建議找一些好用的工具來檢查

關鍵字 JSON validator online

JSONLint jsonformatter

記得不是複製用 expression 的那格,而是預覽好的那格

n8n-line_invalid_json-check_json_validate_online

有錯誤的話通常網站都會檢查到,並且告訴你是哪一行的第幾個字出錯

在 n8n 修正 json invalid

toJsonString()

toJsonString() 是個不錯的內建 function

會多轉換一次字串資料

n8n-line_invalid_json-solution-to_json_string

效果如下

輝達落腳"北士科" 地上權都審延遲 北市府竟遭新壽回:無可奉告

after toJsonString()

"輝達落腳\"北士科\" 地上權都審延遲 北市府竟遭新壽回:無可奉告"

除了字串的前後加上了雙引號,還會Escape字串內的雙引號

上面有提過

"textext"aaa"textext" ❌ 這樣不行,裡面又出現雙引號

但如果是

"textext\"aaa\"textext" ✅ 這樣OK,因為雙引號被Escape了

replaceAll()

另一種做法是,當你發現 input 進來的資料無論如何都包含了雙引號,你想要直接把它移除掉的話

可以使用 replaceAll()

"{{ $json.title.replaceAll('"', '') }}"

n8n-line_invalid_json-solution-replace_all

相關文章推薦

n8n 教學:新手入門指南、節點、模板、部署

卡關的話,這頁整理了新手常踩的雷和其他小撇步,一次看完。

n8n 教學:新手入門指南、節點、模板、部署

分享這篇文章

不想自己建?讓我幫你

已協助 15+ 個團隊導入 n8n 自動化,從流程規劃到上線維護一手包辦。

看看我能幫你做什麼