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

n8nでのデータ指定に必須!JSONPathの基礎とよく使う式パターンまとめ

iPaaSツール「n8n」を使って業務自動化のワークフローを作成していると、必ずと言っていいほど直面するのが「データの指定」という壁です。

特にAPI連携で取得したデータは、多くの場合「JSON」という形式でやり取りされます。

「取得したデータの中から、この部分だけを使いたいのに…」

「特定の条件に合う情報だけを抜き出して、次のアクションにつなげたい…」

そんな悩みを解決してくれるのが、今回ご紹介する「JSONPath(ジェイソンパス)」です。

この記事では、2026年1月時点の情報として、n8nを使いこなす上で必須の知識であるJSONPathの基礎から、コピペで使える便利なパターンまで、初心者にも分かりやすく解説します。

この記事を読み終える頃には、あなたはn8n上でデータを自由自在に操れるようになっているはずです。

JSONPathとは?n8nのデータ操作でなぜ重要なのか

まず、JSONPathを理解する前に、その対象となる「JSON」について簡単におさらいしましょう。JSON(JavaScript Object Notation)は、データをやり取りする際に広く使われるテキストベースのデータ形式です。「キー」と「値」のペアで構成され、人間にもコンピュータにも読みやすいのが特徴です。

例えば、以下のような顧客データがあったとします。

{ "customer": { "name": "山田 太郎", "age": 30, "isVip": true, "orders": [ { "orderId": "A001", "amount": 5000 }, { "orderId": "A002", "amount": 8000 } ] } }

このデータの中から「顧客名」や「2番目の注文金額」だけを取り出したい、といった場合に活躍するのがJSONPathです。JSONPathとは、一言で言えば「JSONデータ内における、目的のデータまでの住所を示すパス(道筋)」のようなものです。ファイルを探すときに「CドライブのUsersフォルダの中のDocumentsフォルダ」と指定するのに似ていますね。

n8nのワークフローでは、ノードからノードへとデータがJSON形式で受け渡されていきます。例えば、「HTTP Requestノード」で外部APIから商品リストを取得し、その中から価格が1,000円以上の商品だけを「Google Sheetsノード」でスプレッドシートに書き出す、といった処理を考えます。このとき、「価格が1,000円以上の商品データ」を正確に指定するためにJSONPathが不可欠となるのです。n8nのExpression Editor(式エディタ)を使えば、このJSONPathを記述して、動的にデータを参照・加工できます。つまり、JSONPathを制する者は、n8nのデータ操作を制すると言っても過言ではありません。

これだけは覚えたい!JSONPathの基本構文

JSONPathにはいくつかのお作法(構文)がありますが、ここでは特にn8nで頻繁に使う基本的なものを4つご紹介します。これらを組み合わせるだけで、多くのデータ抽出が可能になります。

ルート要素と子要素の指定($ と .)

JSONPathの式は、必ずルート(一番上の階層)を表す$から始まります。そして、階層を1つ下がるごとに.(ドット)を使ってキー名を繋げていきます。

  • JSONPath式: $.customer.name
  • 取得結果: “山田 太郎”

これは、「一番上の階層($)にあるcustomerオブジェクトの中の、nameキーの値」という意味になります。非常に直感的ですね。

配列(リスト)の要素指定([])

JSONデータの中には、[]で囲まれた「配列(リスト)」構造がよく登場します。先ほどの例ではordersがそれにあたります。配列内の特定の要素にアクセスするには、[インデックス番号]を使います。注意点として、インデックス番号は0から始まります。

  • JSONPath式: $.customer.orders[0]
  • 取得結果: { "orderId": "A001", "amount": 5000 } (1番目の注文データ全体)

さらに、その中の特定のキーを指定することも可能です。

  • JSONPath式: $.customer.orders[1].amount
  • 取得結果: 8000 (2番目の注文の金額)

ワイルドカードですべての要素を取得(*)

オブジェクトのキー名や配列のインデックス番号が何であれ、その階層のすべての要素を取得したい場合には*(アスタリスク)を使います。これは、複数の項目をまとめて処理したい場合に非常に便利です。

  • JSONPath式: $.customer.orders[*].amount
  • 取得結果: [5000, 8000] (すべての注文の金額を配列として取得)

深い階層を検索する再帰的な指定(..)

データの階層が複雑で、どこにあるかわからない特定のキーを探したい場合に便利なのが..(ダブルドット)です。これは「現在の階層以下にあるすべての要素」を対象に検索をかけます。

  • JSONPath式: $..orderId
  • 取得結果: ["A001", "A002"] (JSONデータ全体からorderIdキーを持つ値をすべて探し出す)

ただし、..は意図しないデータまで取得してしまう可能性もあるため、データ構造が明確な場合は.で正確に指定する方が安全です。

実践!n8nでよく使うJSONPathの式パターン

基本構文を理解したところで、次はn8nのワークフローで即戦力となる、より実践的なJSONPathのパターンを見ていきましょう。特に「フィルタ式」は非常に強力で、使いこなせるとワークフローの汎用性が格段に上がります。

特定の条件に一致する要素を抽出する(フィルタ式 [?()])

JSONPathの真骨頂ともいえるのが、このフィルタ機能です。配列の中から、特定の条件を満たす要素だけを絞り込むことができます。式は[?(@.キー名 演算子 値)]のように記述します。

例1: 注文金額が6000円より大きい注文データのみを取得する

  • JSONPath式: $.customer.orders[?(@.amount > 6000)]
  • 取得結果: [{ "orderId": "A002", "amount": 8000 }]

@は配列内の現在の要素を表します。つまり「orders配列の各要素の中で、amountが6000より大きいもの」を抽出しています。

例2: VIP顧客(isVipがtrue)であるかどうかを判定する

フィルタは特定のオブジェクトの存在確認にも使えます。以下の例では、条件に合う要素があればそのデータが、なければ空の配列が返ります。これを利用して、n8nのIFノードで処理を分岐させることができます。

  • JSONPath式: $[?(@.customer.isVip == true)]
  • 取得結果: isVipがtrueならデータ全体が、falseなら空が返る

配列の最初の要素や最後の要素を取得する

n8nでは、ループ処理(Loop Over Itemsノード)の最後や、時系列データの最新版だけを使いたい、といった場面がよくあります。そのような場合にインデックス指定が役立ちます。

  • 最初の要素: $.customer.orders[0]
  • 最後の要素: $.customer.orders[-1] (最後の要素は-1で指定できます)

複数の特定の要素を一度に取得する(ユニオン [,])

1つのオブジェクトから、複数のキーの値を同時に取り出したい場合は[,]を使います。

例: 顧客の名前とVIPステータスを同時に取得

  • JSONPath式: $.customer['name', 'isVip']
  • 取得結果: “山田 太郎”とtrueを含む配列(n8nの挙動に依存する場合があります)

この構文はn8nのバージョンや実装によって挙動が異なる場合があるため、Expression Editorでプレビューしながら試すのが確実です。

JSONPathを使いこなすためのヒントと注意点(独自の視点)

最後に、私がn8nで数多くのワークフローを構築してきた経験から、JSONPathをよりうまく、そして安全に使いこなすためのヒントをいくつか共有します。

n8nのExpression Editorで効率的に試す

n8nの最大の利点の一つが、Expression Editor内でリアルタイムにJSONPathの結果をプレビューできることです。前のノードを実行して入力データ(Input Data)が確定している状態であれば、エディタに式を打ち込むたびに、右側のプレビュー欄(Output)に結果が即座に表示されます。複雑な式を組み立てる際は、いきなり完成形を目指すのではなく、$から始めて.で少しずつ階層を掘り下げ、プレビューで確認しながら進めるのが最も確実で速い方法です。

データ構造が変わったときのエラー対処法

APIの仕様変更などで、参照しようとしたキーが存在しない場合、ワークフローはエラーで停止してしまいます。これを避けるには、いくつかの対策があります。

  1. ノード設定の「Continue on Fail」を有効にする: ノードの設定画面(Settingsタブ)にある「Continue on Fail」をオンにしておけば、そのノードでエラーが発生してもワークフロー全体が止まるのを防げます。
  2. IFノードで存在確認をする: データを本格的に利用する前に、IFノードで{{ $json.key } !== undefinedのような条件式を使って、キーが存在するかどうかをチェックする一手間が、安定したワークフロー運用につながります。

外部ツールで事前に式をテストする

非常に複雑なJSONデータや、まだn8nのワークフローに組み込んでいないAPIのレスポンスを元にJSONPathを考えたい場合もあるでしょう。そんなときは、「JSONPath Online Evaluator」のようなWebツールが便利です。JSONデータを貼り付けて、様々なJSONPath式を試せるので、効率的に目的の式を見つけ出すことができます。そこで完成した式をn8nに持ち込む、という手順も有効です。

JSONPathがうまく機能しないときは、まず「そもそもデータが正しくノードに渡ってきているか」「JSONの形式が崩れていないか」を確認することも、問題解決の近道となります。

まとめ:JSONPathをマスターしてn8nの自動化を次のレベルへ

今回は、n8nでのデータ操作に不可欠なJSONPathについて、その基本から実践的な使い方までを解説しました。

最初は少しとっつきにくいかもしれませんが、以下のポイントを押さえるだけで、大半のデータ抽出は可能になります。

  • $.で階層をたどる
  • 配列は[0]のようにインデックスで指定する
  • 条件分岐には[?(@.key == 'value')]というフィルタ式が超強力

JSONPathを使いこなせるようになると、これまで諦めていた複雑なデータの加工や、より柔軟な条件分岐が可能になり、あなたのn8nワークフローは格段に賢く、そして堅牢になります。

n8nの持つポテンシャルをさらに深く探求したい方は、その全体像や具体的な導入メリット、始め方を網羅的に解説した「n8n完全ガイド記事」もぜひご覧ください。あなたの自動化の旅を力強くサポートします。

そして、「この記事を読んで、n8nを本格的に始めてみたい!」と思った方は、ぜひこちらの公式サイトからサインアップしてみてください。クラウド版ならすぐに、無料で強力な自動化ワークフローを体験し始めることができます。

まずは簡単なデータ抽出から、JSONPathの世界に足を踏み入れてみましょう!