>_devtools-hub

JSON Path Tester

JSONPath 式をリアルタイムでテスト・結果を即確認

BOOTHで見る(有料版)
開発者向けユーティリティJSON

JSONデータにJSONPath式を打ち込むだけで、マッチした値をリアルタイム表示。ドット記法・再帰下降・配列インデックス・フィルター式([?(@.key)])に対応。ライブラリなしの純JS実装。

広告

JSON Path Tester

Quick:
{}JSON Source
>Query
Result4
[
  "草枕",
  "吾輩は猫である",
  "注文の多い料理店",
  "銀河鉄道の夜"
]

Features

  • JSONPath式をリアルタイムでテスト・結果即確認
  • ドット記法・再帰下降(..)・配列インデックス・フィルター式に対応
  • プリセット式5種以上(全要素・特定キー・インデックス・フィルター等)
  • 結果件数表示・JSONコピー機能
  • 無効JSON・無効式のエラーハンドリング

Desktop Only

有料版のみ

デスクトップ版(BOOTH)でのみ使える機能

  • JSONファイルをドロップして読み込み
  • 結果をJSON / CSVでファイル出力

Desktop App

デスクトップ版を入手する

Web版にはない機能をデスクトップ版で追加しています。

  • JSONファイルをドロップして読み込み
  • 結果をJSON / CSVでファイル出力
BOOTH で見る

JSONPathとは?基本構文と活用例

JSONPathはJSONデータの特定の値を取り出すためのクエリ言語です。XPathのJSON版として設計されており、ネストが深いJSONからのデータ抽出・APIレスポンスの特定フィールド取得に活用できます。

JSONPathの基本構文

$ はルート要素を指します。$.user.nameは「userオブジェクトのnameフィールド」を表します。$.items[0]は配列の最初の要素、$.items[*]はすべての要素、$.items[0:3]はスライス(0〜2番目)、..nameは再帰下降で全階層のnameを検索します。JSON Path Testerではこれらをリアルタイムでテストして結果を即確認できます。@記号は現在処理中の要素を指す特別な構文で、フィルター式で使います。$.items[-1]のような負のインデックスで最後の要素を指定することもできます。JSONPathの仕様(RFC 9535)は2024年に公開され、仕様の曖昧さが解消されつつありますが、実装によって動作が異なることがあるため、実際の実行環境(jq・JSONPath Plus・Python jsonpathなど)でのテストが推奨されます。

フィルター式の使い方

$.items[?(@.price > 100)]は「priceが100より大きい要素」を抽出するフィルター式です。@は現在の要素を指します。$.users[?(@.active == true)]でアクティブユーザーだけを取得したり、$.products[?(@.category == "book")]でカテゴリを絞り込んだりできます。比較演算子は>・<・>=・<=・==・!=が使えます。&&や||で複数の条件を組み合わせることもできます($.items[?(@.price > 50 && @.inStock == true)])。文字列のパターンマッチにはmatch()関数を使う実装もありますが、すべての環境で対応しているわけではありません。JSON Path Testerで実際のJSONデータに対してフィルター式を試すと、構文が正しいか即座に確認できます。

どんな場面で使うか

REST APIのレスポンスから特定のフィールドだけ取り出す、CIパイプラインでJSONファイルの特定値を確認する、AWS CLIの--queryオプション(JMESPath形式)、Kubernetes YAMLのvalueFrom.fieldRef、jq(JSONプロセッサ)の操作確認などで活用できます。テスト自動化(PlaywrightやJestのAPIテスト)でAPIレスポンスのネストした値をアサートするときにもJSONPathが使われます。GitHub Actionsのworkflowファイルでjqコマンドを使いJSONを処理するステップを書く際も、事前にJSON Path Testerで式を確認しておくとCIを何度も回す手間が省けます。Postmanのテストスクリプトでもpm.response.json()から値を取り出す際に同様の操作が必要です。

jqとの違い

jqはJSONを処理するUnixコマンドラインツールでJSONPath以上に強力なフィルタリングと変換ができます。jqは独自の構文(.users[].name など)を持ち、値の変換・計算・文字列操作なども可能です。JSONPathはより標準的で多くの言語ライブラリが対応しており(JavaScript・Python・Java)、ブラウザ上でのテストに向いています。JSON Path TesterではインストールなしにブラウザでJSONPath式を試せます。jqの使い方を学ぶ際もJSON Path Testerでデータ構造を先に確認してからjqのパスを書くと効率的です。JSONPathに相当するjqの式を並べてみると、$.users[*].name は jq では [.users[].name] のように書きます。両者の対応を理解すると相互の変換が容易になります。

広告

Related Tools

base64-studio

Base64 エンコード & デコード

開発者向けテキストエンコード

使ってみる →

BOOTH

JSON Studio

JSON フォーマッター & バリデーター

JSON開発者向けフォーマッター

使ってみる →

BOOTH

color-deck

カラーコード変換 & パレット保存

カラーデザイン開発者向け

使ってみる →

BOOTH

このツールを共有する