JSON Path クエリ — JSONPath で JSON ツリーを探索
JSON データに対して JSONPath クエリ (例: `$.store.book[*].author`) を実行して、必要な値だけを取り出します。jsonpath-plus (MIT) でブラウザ内処理、結果は値・パス・親ノードのいずれかで取得可能。API レスポンスの抽出、ログから特定フィールドだけ抜き出す、設定ファイルの値確認、DevTools での JSON 探索に便利。複雑な式 (`?(@.price < 10)` / `$..` / `[?(@.tag=='x')]`) も使えます。データはブラウザ内でのみ評価され、外部送信はありません。
使い方
JSON を入力欄に貼り付け、JSONPath クエリ (例: `$.store.book[*].author`) を入力します。 「結果の種類」を選びます。値はマッチしたノードの中身、パスは JSONPath 表記の文字列、親はそのノードを含む親オブジェクト/配列。 結果は入力と同時に再評価され、件数と JSON が下に表示されます。「コピー」「JSON でダウンロード」で書き出せます。 サンプル ボタンを押すと、よく使われる books / bicycle のサンプル JSON と `$.store.book[*].author` のクエリが入ります。
よくある質問
- どんなクエリが使えますか?
- jsonpath-plus が実装する JSONPath 全般です。`$` (root) / `..` (再帰下降) / `[*]` (全要素) / `[?(@.price < 10)]` (フィルタ) / `[0:5]` (スライス) などが利用できます。詳しい構文は jsonpath-plus の README を参照してください。
- 「値」「パス」「親」の違いは?
- 「値」はマッチしたノードの中身そのもの (デフォルト)。「パス」はそのノードへの JSONPath 文字列 (`$.store.book[0].author` のような形式) を返します。「親」はマッチしたノードを直接含んでいるオブジェクト/配列を返します。
- 「配列をフラット化」とは?
- JSONPath は常に複数マッチを想定しているため、デフォルトでは結果が 1 件でも配列 (`[...]`) でラップされます。ON にすると、1 件しか返らないクエリでは中身の値だけが出力されます (例: `$.expensive` で `10` をそのまま返す)。複数件マッチの場合は OFF と同じく配列のままです。
- JSON のパースに失敗するときは?
- JSON5 形式 (コメント、末尾カンマ、シングルクオート文字列など) は受け付けません。json5-format ツールで標準 JSON に変換してから貼り付けてください。
- データはどこかに送信されますか?
- いいえ。jsonpath-plus はすべてブラウザ内で動作し、JSON データはサーバーに送信されません。
類似のツール
JSON 整形・検証 — インデント / 圧縮 / エラー表示
JSON をブラウザ内で整形 (インデント指定) ・最小化・バリデーションします。エラー行・列を表示。データは一切外部に送信されません。
JSON 比較 / 差分 — 構造的に違いを抽出
2 つの JSON を構造的に比較。オブジェクト/配列のネストを再帰的に解析し、追加・削除・変更・移動の各差分をハイライト表示します。すべてブラウザ内で処理。
JSON → TypeScript 型定義生成
JSON を貼り付けると、対応する TypeScript の interface / type 定義を生成します。ネストしたオブジェクトは別 interface に分割、配列はキーをマージして一部だけに存在するキーを optional (?) に、混在する値は union 型に変換。ルート型名・interface / type 切替・export 付与を選べます。同じ構造の型は 1 つにまとめます。JSON はブラウザ内でだけ処理され、外部に送信されません。
YAML ⇄ JSON 変換 — インデント保持
YAML と JSON を相互変換します。インデント (2 / 4 / タブ) 切替・サンプル付き。eemeli/yaml ライブラリでブラウザ内処理。