n8nでJSONエラーが出る原因と対処法【初心者向け】

AI自動化

n8nでAPI連携をしていると、

・JSON parameter needs to be valid JSON
・Bad request

といったエラーにぶつかることがあります。

一見するとAPIの問題に見えますが、
実際はn8n側の設定ミスであることがほとんどです。

この記事では、JSONエラーが出る原因と対処法を、
実体験ベースでわかりやすく整理します。


よくあるJSONエラー

まずよく見るのがこれです。

JSON parameter needs to be valid JSON

意味はシンプルで、「JSONとして正しい形式になっていない」ということです。


JSONエラーの原因

主な原因はこの4つです。

・シングルクォートを使っている
・末尾にカンマがある
・JSON形式になっていない
・Expressionの書き方ミス


ダメな例

{
  'text': 'hello'
}

シングルクォートはNG


{
  "text": "hello",
}

最後のカンマNG


{{ $json.text }}

これはJSONではなく、ただの文字列(値)になっているため、そのままでは使えません。


正しい書き方

{
  "text": "hello"
}

JSONは「ダブルクォート+正しい構造」が必須です。


Using JSONでハマるポイント

n8n特有の罠です。


ダメな例

{{ $json.post_text }}

これはただの文字列


正しい書き方

{
  "text": "{{ $json.post_text }}"
}

必ずJSONオブジェクトにすることです。


一番安全な方法

改行や記号が混ざるとJSONは簡単に壊れます。

そのため、これが一番安全です。

{{ JSON.stringify({ text: $json.post_text }) }}

この場合だと、どんな文字でも壊れないです。


なぜJSONエラーは起きるのか

原因はシンプルです。

見た目は正しそうでも、実際はJSONじゃない


特にn8nでは、

  • Expression
  • 文字列結合
  • 改行

が混ざるので壊れやすいです。


対処のコツ

JSONエラーで詰まったら、これをやればOKです。

① 一度シンプルなJSONに戻す
② JSON.stringifyで包む
③ Using JSONの設定を見直す

ほぼこれで解決します


まとめ

n8nのJSONエラーは、

・書き方ミス
・構造ミス

このどちらかです。

そして重要なのは、

APIではなく自分の設定が原因であることが多いです。

タイトルとURLをコピーしました