n8nでワークフローを組んでいると、必ずと言っていいほど目にする「JSON」という言葉。
「なんだかプログラミングっぽくて難しそう…」「エラーが出てワークフローが止まってしまった…」そんな経験はありませんか。
実は、JSONはデータの整理方法に関するシンプルなルールに過ぎず、決してエンジニアだけのものではありません。
この記事では、非エンジニアの方でもJSONの基本をしっかり理解し、n8nで発生するエラーに自信を持って対処できるよう、専門用語を極力使わずに解説します。
データの構造を「お店の顧客名簿」に例えながら、実践的なエラー解決のコツまで丁寧にご紹介しますので、ぜひ最後までご覧ください。
この記事を読み終える頃には、JSONへの苦手意識がなくなり、n8nでの業務自動化がさらに楽しくなっているはずです。
そもそもJSONとは?n8nでなぜこれほど重要なのか
まず、JSONそのものについて理解を深めましょう。JSONがn8nでどれほど重要な役割を果たしているかを知ることで、学習のモチベーションもきっと上がるはずです。
JSONはWebサービス間の「共通言語」
JSON(ジェイソン)は “JavaScript Object Notation” の略で、データをやり取りする際の形式の一つです。人間にとっても、そしてコンピュータにとっても読み書きしやすいように設計されているのが最大の特徴です。
n8nは、様々なWebサービスやアプリケーションを連携させるツールです。例えば、「Gmailに新しいメールが届いたら、その内容をSlackに通知する」といったワークフローを考えたとき、GmailとSlackは異なる会社が作った全く別のサービスですよね。n8nは、これら異なるサービス間の「通訳」として、データを仲介します。その際に使われる共通言語がJSONなのです。
Gmailから受け取ったメール情報(送信者、件名、本文など)はJSON形式でn8nに渡され、n8nはそれを解釈してSlackに送るためのJSONデータへと加工してくれます。このため、n8nを深く使いこなす上でJSONの知識は避けて通れないのです。
例えで理解!JSONは「整理された顧客名簿」
いきなり専門的な話で戸惑ったかもしれません。もっと身近なものに例えてみましょう。JSONは「項目名」と「値」がペアになった、整理整頓された顧客名簿のようなものです。
例えば、以下のようなシンプルなJSONを見てください。
{
"name": "山田 太郎",
"email": "taro.yamada@example.com",
"age": 35,
"is_premium_member": true
}
これは、一人の顧客情報を表しています。"name"(名前)という項目名に対して"山田 太郎"という値が、"age"(年齢)という項目名に対して35という値が、それぞれペアになっています。この「項目名」を「キー」、「値」を「バリュー」と呼びます。この「キーとバリューのペア」がJSONの基本単位です。とてもシンプルですよね。
n8nのあらゆる場面でJSONは活躍している
n8nのワークフローでは、以下のような場面でJSONが使われています。
- トリガーでのデータ受信: Webhookやフォームからデータを受け取るとき、そのデータはJSON形式でn8nに渡されます。
- ノード間のデータ連携: あるノードから次のノードへ情報を引き渡すとき、n8nの内部ではデータがJSON形式で管理されています。
- APIへのデータ送信: 別のサービスに情報を送るとき、そのサービスが要求するJSON形式に合わせてデータを組み立てる必要があります。
このように、n8nのワークフローはJSONデータの流れそのものです。だからこそ、JSONの構造を理解することが、n8nを自由自在に操るための鍵となるのです。
JSONの基本構造をマスターしよう!覚えるべき3つのルール
JSONの構造は非常にシンプルです。ここでは、最低限覚えておくべき3つの基本ルールを解説します。これさえ押さえれば、n8nで見るほとんどのJSONは読み解けるようになります。
ルール1:波括弧 { } と角括弧 [ ] の使い分け
JSONには主に2種類の括弧が登場します。それぞれの役割を理解することが最初のステップです。
- 波括弧
{ }(オブジェクト): キーとバリューのペアをまとめる役割を持ちます。先ほどの例のように「一人の顧客情報」など、単一のまとまったデータを表すときに使います。これを「オブジェクト」と呼びます。 - 角括弧
[ ](配列): 複数のオブジェクトや値を順番に並べてリスト化する役割を持ちます。例えば、「複数の顧客情報リスト」のように、同じ種類のデータを複数格納するときに使います。これを「配列(アレイ)」と呼びます。
実際のデータを見てみましょう。以下は、2人の顧客情報が「配列」に格納されている例です。
[
{
"name": "山田 太郎",
"email": "taro.yamada@example.com",
"age": 35
},
{
"name": "鈴木 花子",
"email": "hanako.suzuki@example.com",
"age": 28
}
]
角括弧 [ ] の中に、波括弧 { } で囲まれた2つの顧客情報(オブジェクト)がカンマで区切られて入っているのがわかりますね。n8nで複数のアイテムを扱う際は、必ずと言っていいほどこの配列構造が登場します。
ルール2:「キー: バリュー」のペアでデータを表現する
先述の通り、JSONの基本は「キー」と「バリュー」のペアです。ここにもいくつかルールがあります。
- キーは必ずダブルクォーテーション
" "で囲みます。(シングルクォーテーション' 'は使えません。エラーの元なので注意!) - キーとバリューの間はコロン
:で区切ります。 - バリューには、様々なデータ型が使えます。
- 文字列:
"山田 太郎"のようにダブルクォーテーションで囲みます。 - 数値:
35のようにそのまま記述します。 - 真偽値:
trueまたはfalseをそのまま記述します。 - オブジェクト:
{ }を使って、データの中にさらに階層構造を作れます。 - 配列:
[ ]を使って、値のリストを格納できます。
- 文字列:
これらのルールを組み合わせることで、複雑なデータも表現できるのです。
ルール3:カンマ , で各要素を区切る
これが最もシンプルで、かつ最もエラーを引き起こしやすいルールです。
- オブジェクト内の複数の「キー: バリュー」ペアは、カンマ
,で区切ります。 - 配列内の複数の値(オブジェクト含む)も、カンマ
,で区切ります。
ここで非常に重要なのが、「最後の要素の後ろにはカンマをつけない」という点です。これを「Trailing Comma」と呼び、JSONの仕様では許可されていません。
良い例:
{
"name": "山田 太郎",
"email": "taro.yamada@example.com"
}
悪い例(エラーになる):
{
"name": "山田 太郎",
"email": "taro.yamada@example.com",
}
n8nでJSONを手入力する際にエラーが出たら、まずこのカンマのつけ忘れや、余計なカンマがないかを疑ってみましょう。
n8nで実践!よくあるJSONエラーとその解決策
理論を学んだところで、今度はn8nで実際に遭遇する可能性のある具体的なエラーと、その解決策を見ていきましょう。エラーメッセージに臆することなく、原因を特定して修正できるようになります。
エラーケース1:Unexpected token ‘ in JSON at position…
このエラーは、「JSONの中で予期せぬ ‘ (シングルクォーテーション) が見つかりました」という意味です。非エンジニアの方が最も陥りやすいエラーの一つかもしれません。
- 原因: JSONのキーや文字列の値を、ダブルクォーテーション
" "ではなく、シングルクォーテーション' 'で囲んでしまっている。 - 解決策: JSON内のすべてのシングルクォーテーションを、ダブルクォーテーションに修正します。
修正前(エラー):
{
'name': '山田 太郎'
}
修正後(OK):
{
"name": "山田 太郎"
}
n8nのExpression Editor内でJSONを記述する際、無意識にシングルクォーテーションを使いがちなので、常にダブルクォーテーションを使うことを徹底しましょう。
エラーケース2:Unexpected end of JSON input
「JSONの入力が予期せぬ場所で終わっています」というこのエラーは、JSONの構造が壊れていることを示唆しています。
- 原因: 主な原因はカンマの不足です。複数の要素を並べる際に、区切りとなるカンマ
,が抜けていることが多いです。また、括弧{ }や[ ]の閉じ忘れも原因となり得ます。 - 解決策: 各要素がカンマで正しく区切られているか、括弧がすべてペアで対応して閉じられているかを確認します。
修正前(エラー):
[
{
"name": "山田 太郎"
}
{
"name": "鈴木 花子"
}
]
修正後(OK):
[
{
"name": "山田 太郎"
},
{
"name": "鈴木 花子"
}
]
エラーケース3:Cannot read properties of undefined
このエラーは、「定義されていない(存在しない)もののプロパティを読み取ろうとしました」という意味です。これは構文エラーではなく、データの階層指定が間違っている場合に発生します。
- 原因: n8nのExpressionで、JSONデータのパス指定を間違えている。例えば、`items`という配列の中に`name`があるのに、`item.name`のように複数形`s`を忘れて指定してしまうケースです。
- 解決策: n8nのデータビューワー(前のノードの出力結果が見れる画面)をじっくり観察し、正しい階層構造を把握します。ドット
.でオブジェクトの階層をたどり、角括弧[0]などで配列の何番目の要素かを指定します。
例えば、{{ $json.data.customer[0].name }} のように、データビューワーの見た目通りにパスを正確に記述することが重要です。
【独自の視点】エラーを未然に防ぐための実践的なコツ
エラーが出てから修正するのも良いですが、できることならエラーは避けたいものです。私が実践している、エラーを未然に防ぐためのコツをいくつかご紹介します。(2026年1月時点の情報)
- オンラインJSON検証ツールを使う: Googleで「JSON validator」と検索すると、JSONが正しい形式かチェックしてくれるWebサイトがたくさん見つかります。n8nのCodeノードやHTTP Requestノードに貼り付ける前に、一度これらのツールで構文をチェックする癖をつけると、単純なミスを大幅に減らせます。
- Codeノードで小さく試す: 最終的に作りたい複雑なJSONがある場合でも、いきなり完成形を目指すのではなく、n8nのCodeノードを使って部分部分を少しずつ組み立て、`return`で出力して結果を確認しながら進めると、どこで間違えたかの特定が容易になります。
- Setノードでデータを整形する: APIから返ってきた巨大なJSONをそのまま後続のノードに渡すのではなく、一度Setノードを挟んで、必要なデータだけを抽出・整形する習慣をつけましょう。これにより、後続のノードでのデータ指定がシンプルになり、ワークフロー全体の見通しが良くなります。
n8nをさらに使いこなすためのJSON活用術
JSONの基本とエラー対処法をマスターすれば、n8nで実現できることの幅は格段に広がります。ここでは、一歩進んだJSONの活用術をご紹介します。
複数のアイテムを一度に処理する(配列の活用)
APIから複数の商品リストや顧客リストが配列 `[ ]` 形式で返ってくることはよくあります。この配列データを活用すれば、反復処理を自動化できます。
例えば、n8nの「Split In Batches」ノードは、配列データを入力すると、配列の中の各アイテムを一つずつ順番に処理するループ(繰り返し)を簡単に作成できます。これにより、「Google Sheetsの複数行のリストをもとに、1行ずつ個別の請求書を作成してメールで送信する」といった高度な自動化も実現可能です。
必要な情報だけを抽出・加工する(オブジェクトの活用)
Webhookなどで受け取るデータには、不要な情報がたくさん含まれていることがよくあります。そのままでは扱いづらいデータを、n8nの「Set」ノードを使って自分好みのシンプルなJSONオブジェクトに再構築しましょう。
例えば、{{ $json.body.customer_data.profile.name }} のような深い階層にある顧客名を、{{ $json.customerName }} のような単純なキーでアクセスできるように設定し直すことができます。これにより、後続のノードでのExpressionが非常にシンプルになり、メンテナンス性の高いワークフローを構築できます。
n8nのさらに詳しい使い方や、様々なサービスとの連携方法については、当サイトの「n8n完全ガイド記事」で網羅的に解説しています。基本的な操作に慣れたら、ぜひそちらもご覧になり、さらなる自動化のヒントを見つけてください。
まとめ:JSONを味方につけて、n8nでの自動化を次のレベルへ
今回は、非エンジニアの方がつまずきがちなn8nとJSONの関係について、基本から実践までを解説しました。
この記事の重要なポイントを振り返ってみましょう。
- JSONは難しいプログラミング言語ではなく、Webサービス間でデータをやり取りするための「共通のデータ整理ルール」です。
- 「オブジェクト
{ }」「配列[ ]」「キー: バリュー」「カンマ,」という基本的なルールを覚えれば、ほとんどのJSONは読み解けます。 - n8nで遭遇するJSONエラーの多くは、クォーテーションの種類ミスやカンマのつけ忘れといった単純な構文ミスです。エラーメッセージを恐れず、原因箇所を冷静に探しましょう。
JSONの構造を理解することは、単にエラーを修正できるようになるだけではありません。様々なWebサービスが提供するAPIの仕様書を読み解き、「このサービスとこのサービスを組み合わせれば、あんなことやこんなことも自動化できるのでは?」と、自ら新しい自動化のアイデアを生み出す力にも繋がります。
n8nは、あなたのアイデアを形にするための強力なツールです。JSONという共通言語をマスターした今、その可能性は無限に広がっています。
まだn8nを試したことがない方も、この記事をきっかけにぜひ、業務自動化への第一歩を踏み出してみてはいかがでしょうか。クラウド版なら無料で始めることができます。