生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

n8nで[Object Object]等のJSONエラーが出た時の対処法とデータ構造の読み方

n8nでワークフローを構築していると、ある日突然表示される[Object Object]という謎の文字列。

「欲しいデータはどこへ?」「もしかしてエラー?」と、頭を抱えてしまった経験はありませんか。

ご安心ください。

実はこれ、多くの場合エラーではなく、n8nが「ここには複雑なデータ構造(オブジェクト)が入っていますよ」と教えてくれているサインなのです。

この記事では、2026年2月時点の情報に基づき、なぜ[Object Object]と表示されるのか、その原因であるJSONデータ構造の基本から、n8nで欲しいデータを自由自在に取り出すための具体的な対処法まで、初心者の方にも分かりやすく解説します。

この記事を読み終える頃には、[Object Object]はもはや恐怖の対象ではなく、データ構造を読み解くためのヒントに変わっているはずです。

なぜ[Object Object]と表示されるのか?その正体は「JSONオブジェクト」

まず最も重要なことからお伝えします。n8nで[Object Object]と表示されるのは、多くの場合、JavaScript(n8nの動作基盤)が「オブジェクト」と呼ばれるデータ形式を無理やり文字列として表示しようとした結果です。エラーではないため、ワークフローが停止するわけではありませんが、意図したデータが渡せず、後続の処理がうまく進まない原因となります。

n8nでは、ノード間で受け渡されるデータのほとんどがJSON(JavaScript Object Notation)という形式を採用しています。APIからデータを取得したり、他のサービスと連携したりする際、データはこのJSON形式でやり取りされるのが一般的です。

[Object Object]が表示されるのは、このJSONデータの中でも特に「オブジェクト」という構造そのものを、テキストフィールドなどの文字列を表示する前提の場所に直接埋め込もうとしたときです。n8nは「この中身は複雑すぎて文字列としては表示できないので、代わりに『これはオブジェクトですよ』という印を表示しておきますね」と、私たちに伝えてくれているのです。

JSONとは何か?Webの共通言語を理解する

JSONは、データを表現するための軽量なテキストベースのフォーマットです。人間にとっても読み書きしやすく、コンピュータにとっても解釈しやすいという特徴から、Web APIをはじめとする多くの場面で標準的に利用されています。

JSONは主に2つの要素で構成されています。

  • オブジェクト (Object): {}(波括弧)で囲まれ、"キー": "値"というペアの集まりです。例えば、{"name": "山田太郎", "age": 30}のように、特定の名前(キー)に対応する値(バリュー)を保持します。
  • 配列 (Array): [](角括弧)で囲まれ、カンマで区切られた値のリストです。例えば、["りんご", "バナナ", "みかん"]のように、複数の値を順番に保持します。

n8nで[Object Object]に遭遇したということは、あなたが扱っているデータが、これらのオブジェクトや配列が複雑に組み合わさった「入れ子(ネスト)構造」になっている可能性が高いと言えるでしょう。この構造を理解することが、問題解決の第一歩となります。

n8nでデータを使いこなす!JSONの基本構造を読み解く方法

[Object Object]を解決するには、n8nがどのようにデータを保持しているかを視覚的に理解する必要があります。n8nの優れた点は、各ノードを実行した後のデータ構造を「OUTPUT」セクションで簡単に確認できることです。

ノードを実行した後、右側のパネルを見てみましょう。「JSON」や「Table」といったタブがあり、特に「JSON」タブはデータ構造を正確に把握するのに役立ちます。三角アイコン(▶)をクリックして階層を開いていくことで、複雑なデータの中身をドリルダウンして確認できます。

ここで注目すべきは、{}(オブジェクト)と[](配列)です。

オブジェクト({}): キーを使って特定のデータにアクセス

オブジェクトは、名前付きの引き出しがついた棚のようなものです。特定のデータが欲しい場合、その引き出しの名前(キー)を指定します。例えば、以下のようなJSONデータがあったとします。

{ "customer": { "name": "佐藤愛子", "email": "aiko.sato@example.com" }, "purchase_date": "2026-02-03"
}

このデータから顧客名を取得したい場合、n8nの式(Expression)では{{ $json.customer.name }}のように、ドット(.)でキーを繋げて指定します。これにより、n8nはcustomerオブジェクトの中のnameキーを探し、「佐藤愛子」という値を返してくれます。

配列([]): インデックス(順番)でデータにアクセス

一方、配列は番号が振られたロッカーのようなものです。複数のデータが順番に並んでおり、何番目のデータが欲しいかをインデックス(番号)で指定します。注意点として、インデックスは0から始まります。

例えば、複数の商品を扱うデータは以下のようになります。

{ "order_id": "ORDER-123", "items": [ { "product_name": "高性能マウス", "price": 5000 }, { "product_name": "メカニカルキーボード", "price": 12000 } ]
}

このデータから最初の商品名(高性能マウス)を取得したい場合、式は{{ $json.items[0].product_name }}となります。items配列の0番目(最初)のオブジェクトを取り出し、その中のproduct_nameキーを指定しています。もし2番目の商品名が欲しければ{{ $json.items[1].product_name }}となります。

[Object Object]が表示されるのは、多くの場合{{ $json.customer }}{{ $json.items[0] }}のように、オブジェクト全体を文字列として扱おうとしたときです。n8nに「どのキーの値が欲しいのか」を具体的に教えてあげることが重要です。

実践!n8nで[Object Object]を解決する3つの具体的な対処法

データ構造の基本を理解したところで、いよいよ実践的な解決策を見ていきましょう。状況に応じていくつかの対処法がありますが、ここでは代表的な3つの方法を紹介します。

対処法1: 式(Expressions)で欲しい値を正確に指定する

最も基本的で最も頻繁に使う解決策が、式(Expression)を使ってデータ構造の階層をたどり、欲しい値のパスを正確に指定する方法です。

n8nのパラメータフィールドの多くは、横にある歯車アイコンから「Add Expression」を選択することで、式エディタを開けます。このエディタが非常に強力で、左側の「Current Node > Input Data > JSON」から利用可能なデータを参照しながら、クリック操作で簡単に対象のデータパスを挿入できます。

例えば、先の例で[Object Object]と表示されてしまったフィールドで式エディタを開き、customerオブジェクトの中のnameをクリックすれば、自動的に{{ $json.customer.name }}という式が入力されます。これにより、オブジェクト全体ではなく、特定のキーに対応する値(文字列や数値)だけを取り出すことができます。

ポイントは、最終的に取得したいデータが文字列や数値など、単一の値になるまでドットや角括弧でパスを掘り下げることです。データ構造の終着点を意識することが、[Object Object]を回避する鍵となります。

対処法2: Item Listsノードで配列データを分割・ループ処理する

APIから取得したデータが複数のアイテムを含む配列(リスト)になっている場合、それらを一つずつ処理したい場面がよくあります。例えば、Google Sheetsの複数行のデータを取得し、1行ずつ別のサービスに登録するようなケースです。

このような配列データをそのまま後続のノードに渡すと、多くの場合[Object Object]問題に直面します。なぜなら、後続のノードは一度に一つのアイテムしか処理できないことが多いからです。

この問題を華麗に解決してくれるのが「Item Lists」ノードです。このノードの「Split Out Items」オペレーションを使うと、配列内の各アイテムを、それぞれ独立したn8nアイテムとして分割してくれます。これにより、後続のノードはアイテムの数だけループ実行され、一つ一つのデータを確実に処理できるようになります。

対処法3: Codeノードでデバッグや複雑なデータ整形を行う

「どうしてもデータ構造が分からない」「もっと柔軟にデータを加工したい」という上級者向けの選択肢が「Code」ノードです。このノードを使えば、JavaScriptコードを直接書いてデータを自由に操作できます。

[Object Object]の正体を突き止めるための強力なデバッグ手法として、Codeノードで以下のコードを実行する方法があります。

console.log(JSON.stringify(items, null, 2));
return items;

JSON.stringifyは、JavaScriptのオブジェクトを人間が読める形式のJSON文字列に変換する命令です。これをconsole.logで出力することで、ブラウザの開発者ツールやサーバーのログに、[Object Object]の中に隠されていた完全なデータ構造が表示されます。これを見れば、どのキーをどの順番で辿ればよいかが一目瞭然になります。

n8nの自動化ワークフローをさらに高度なものにしたいと考えているなら、JavaScriptの基礎を学ぶ価値は非常に高いと言えるでしょう。

まとめ: [Object Object]を理解してn8nを使いこなそう

今回は、n8nで多くの人がつまずく[Object Object]表示の原因と、その具体的な対処法について解説しました。最後に、重要なポイントを振り返りましょう。

  • [Object Object]はエラーではなく、データ構造(オブジェクト)を文字列として表示しようとしたサイン
  • n8nのデータはJSON形式。{}(オブジェクト)と[](配列)の構造を理解することが第一歩。
  • 解決策は主に3つ。式で正確なパスを指定するItem Listsノードで配列を分割するCodeノードでデバッグ・加工する

[Object Object]は、決して難しい壁ではありません。むしろ、n8nの強力なデータ処理能力を深く理解し、より高度なワークフローを構築するための学びの機会と捉えることができます。今回の記事を参考に、ぜひデータ連携をマスターしてください。

n8nの基本設定から、より実践的なワークフローの構築方法まで、体系的に学びたい方は、私たちのn8n完全ガイド記事がおすすめです。業務自動化の可能性をさらに広げるためのヒントが満載ですので、ぜひあわせてご覧ください。

もし、まだn8nのパワフルな自動化の世界を体験していないのであれば、この機会に始めてみてはいかがでしょうか。無料プランからでも十分にその力を実感できます。

公式サイトでn8nを始める(無料プランあり)