JSONPath クエリ プレイグラウンド
RFC 9535 の JSONPath クエリを試し、各一致をパス付きで確認
JSON を貼り付けるか、ファイルを開くか、サンプルを読み込んでください。
RFC 9535 の JSONPath を、ブラウザー内のバックグラウンド処理で jsonpath-rfc9535 1.3.0 が評価します。
JSONPath クエリ プレイグラウンド とは
JSON ドキュメント内のノードを選択するための IETF 標準、RFC 9535 JSONPath を試せるプレイグラウンドです。JSON を貼り付けて $.store.products[?@.price < 50].name のようなクエリを書くと、各一致の値、正規化パス、JSON ポインターが表示されます。API テスト、設定ツール、OpenAPI オーバーレイ、Kubernetes 風のツール向けのセレクターを作成し、どのノードが選ばれるかを正確に確認できます。JSON の変換や組み替えには jq ベースの JSON クエリ プレイグラウンド を、テキストでキーや値を探すには JSON 検索 を使ってください。
対応している構文
ルート $、メンバー名 ($.name と $['name'])、負の値を含む配列インデックス ([0]、[-1])、ワイルドカード ([*] と .*)、ステップ指定可能なスライス ([1:5]、[::-1])、1 つの括弧内の複数セレクター ([0,2] または ['a','b'])、子孫 (..name と ..*)、フィルターに対応します。フィルター ([?…]) は == != < <= > >= で比較し、&& || ! と括弧で組み合わせ、?@.member で存在を確認します。この確認は、値が false や null でもメンバーが存在すれば真になります。RFC の 5 つの関数 length()、count()、match()、search()、value() を使えます。「構文の例」の各項目は「ストアのカタログ」サンプル用のクエリを読み込みます。
match() と search() の正規表現
match() と search() は I-Regexp (RFC 9485) のパターンを受け取ります。これは相互運用性のある小さな正規表現のサブセットです。match() は文字列全体に一致する必要があり、search() は文字列内のどこかでパターンを探します。Unicode は既定で有効で、ドットは改行以外の任意の文字に一致します。後方参照、先読み・後読み、最短一致の量指定子、フラグは I-Regexp に含まれません。他の JSONPath 実装では拒否または無視されるため避けてください。
正規化パスと JSON ポインター
各一致には正規化パスが表示されます。これは $['store']['products'][0]['name'] のような RFC 9535 の正規形で、メンバー名のアポストロフィ、バックスラッシュ、制御文字はエスケープされます。対応する RFC 6901 の JSON ポインター (例: /store/products/0/name) も表示され、~ は ~0、/ は ~1 になります。ドキュメント全体は空のポインターです。パスはテストに、ポインターは JSON Patch の操作や $ref の値に使えます。
制限とプライバシー
クエリはブラウザー内のバックグラウンド処理で実行されます。何もアップロードや保存はされず、記憶されるのは選択した結果の表示方法だけです。256 KB までの入力は入力中に再実行され、それより大きい 10 MB までの入力は実行ボタンで実行されます。各実行は 15 秒で停止します。一覧には最初の 2,000 件が表示され、件数と「すべてコピー」はすべての一致を含みます。このツールはノードを選択するだけで、データは変換しません。スクリプト式や ~ キー演算子などの古い非標準の拡張は構文エラーになり、@.length は length という名前のメンバーを読みます (サイズには length(@) を使います)。JavaScript の精度を超える数値は、表現可能な最も近い値で表示されます。
