JSONPath・JMESPathテスター

JSON入力に対して JSONPath / JMESPath 風クエリの抽出結果を確認できるテスターです。ドット記法・配列インデックス・ワイルドカードを中心に、ブラウザ内で抽出結果を確認できます。

クエリ方式

一致件数: 0

対応範囲: ドット記法 / ブラケット記法(キー・添字)/ ワイルドカード([*])。

対応範囲

  • 対応: `$.user.name` / `orders[0].total` / `orders[*].id`
  • 非対応: フィルタ式 `?()`、関数呼び出し、スライス、再帰降下(`..`)
  • 非対応例ボタンで、エラーになる入力をそのまま確認できます。

入力データは原則ブラウザ内で処理します。機密情報は入力しないでください。

使い方

  1. JSON入力欄に対象データを貼り付けます。
  2. JSONPath または JMESPath を選び、抽出クエリを入力します。
  3. 抽出結果を確認し、必要ならコピーして利用します。

判断基準

まず単純なキー参照(`orders[0].id`)で当たりを確認し、次にワイルドカード(`[*]`)へ広げる手順で試すと、 クエリ誤りとデータ不備を切り分けやすくなります。

よくある失敗

  • JSONPathで `$` を省略して入力し、先頭記法エラーになる。
  • 配列とオブジェクトを取り違え、`items.name` のように添字を抜かす。
  • 非対応のフィルタ式を使って一致0件を不具合と誤解する。

境界条件

  • フィルタ、関数、スライス、再帰降下など高度構文は対象外です。
  • 一般的には実装差のある言語処理系と完全一致することを保証しません。
  • 本番利用前は利用中ライブラリの公式構文仕様で最終確認してください。

注意点

  • 入力内容がURLクエリに含まれるため、共有時は機密データが含まれていないか確認してください。

具体例

  • `orders[*].id` で配列のID一覧(例: `[1,2,3]`)を抽出できます。
  • `$.user.roles[0]` で先頭ロール(例: `admin`)を1件確認できます。

補足: 本ツールは基本構文の確認に対応しています。フィルタ式 `?()`、関数、スライス、再帰降下 `..` などの高度構文は対象外です。

失敗しやすいクエリ例

  • JSONPathで$を省略する

    JSONPathモードでは先頭$を含む書式が前提です。

    例: 入力例: items[0].id / 出力: 解析エラー

  • 配列添字を省略してオブジェクト扱いする

    配列は [0] や [*] を明示しないと一致しません。

    例: 入力例: orders.total / 判断: orders[0].total へ修正

境界値・例外ケース

  • 非対応構文(フィルタ/関数)を使う

    このツールは基本抽出構文のみ対応です。

    例: 入力例: $.items[?(@.id==1)] / 出力: 非対応エラー

  • 一致0件と構文エラーを混同する

    クエリが正しくても対象データがなければ0件になります。

    例: 判断ポイント: エラーメッセージ有無で切り分ける

よくあるミス

  • モード切替後に前モードの記法を使う

    JSONPathとJMESPathで先頭記法や許容表現が異なります。

    例: 判断ポイント: モード変更時はクエリを再入力する

  • 実装ライブラリ差異を無視して本番クエリ化する

    実運用の処理系では挙動差があるため最終確認が必要です。

    例: 出力確認後に利用中ライブラリで同クエリを再検証

FAQ

  • JSONPathとJMESPathを完全互換で評価できますか?

    いいえ。共通して使いやすい基本構文(ドット・添字・ワイルドカード)に対応しています。

  • エラー時にどこを直せばよいですか?

    JSONの構文エラーか、クエリの記法エラーを判定してメッセージ表示します。まず入力JSONの妥当性を確認してください。

  • 一致件数が0件のときは何を確認すべきですか?

    キー名のスペル、配列添字、先頭記法($有無)を順に確認すると原因を特定しやすくなります。

基本FAQ

  • 入力データは外部へ送信されますか?

    原則として送信されません。入力内容はブラウザ内で処理します。例外がある場合は各ツールページ内に明記しています。

  • 入力内容は自動保存されますか?

    原則として自動保存しません。コピーやダウンロードで保存する場合は、ご利用端末内に保存されます。

現在の入力内容とあわせて確認しやすいツールです。