貼り付けた JSON をセレクタと簡単な比較フィルタで検索し、一致した値とパスを確認します。未対応の構文は拒否され、JavaScript 式は実行しません。
ブラウザ内でローカルに実行名前、ブラケット記法、添字、ワイルドカード、和集合、スライス、子孫セレクタ、簡単な比較フィルタに対応しています。
コアのクエリ解析はローカルで実行されます。未対応の式は eval() にフォールバックせず、明確なエラーを返します。 eval().
JSON 文書を貼り付け、JSONPath 式を入力すると、一致したノードごとに正規化されたパスと値が表示されます。クエリはこのタブ内のテキストに対して実行され、どこにも送信されません。
パーサーはこのツール専用で、eval() には決してフォールバックしません。実装していない構文は具体的なエラーで止まります。&&、||、! を使った複合フィルターや、フィルター内でルート文書と比較する式は拒否されます。
名前、引用符付きの名前、添字に対応します: $.store.book、$["store"]["book"]、$['store']['bicycle']、[0]、最後の要素を指す [-1]、[0,1] や ['a','b'] のような和集合。ドット記法の名前は英字・アンダースコア・$ で始まり、英数字・アンダースコア・$・ハイフンを続けられます。ドットや空白を含むキーはブラケット記法を使います。
ワイルドカード、スライス、子孫: $.store.*、$..price、[0:2]、[::2]、[::-1]。スライスは Python と同じ境界規則で、負の境界は末尾から数え、負のステップは逆方向に進みます。
フィルターが評価する比較は 1 つだけです。数値、引用符付き文字列、true、false、null に対して ==、!=、<、<=、>、>= を使えます: [?(@.price < 10)] や [?(@.title == "Moby Dick")]。演算子を書かないフィルターは、そのプロパティが存在して真であるノードを残します: [?(@.isbn)]。
評価できない式は推測せずに拒否します。[?(@.price > 1 && @.price < 10)] は複合フィルターが未対応であること、[?(@.price > $.expensive)] はフィルター内でルートと比較できないこと、=~ /a/ のような正規表現はフィルター式が未対応であることを返します。
一致したノードは、クエリの書き方にかかわらず $["store"]["book"][0]["author"] という 1 つの正規化形式でパスを報告し、同じノードが二重に並ぶことはありません。結果の JSON をコピーは一致した値を 1 つの JSON 配列として返し、フィクスチャや差分にそのまま使えます。
一致件数のカードは先頭 200 件を表示し、残りの件数を示します。コピーは常に全件の配列を返します。5 万ノードの文書でもワイルドカードのクエリは 1 秒未満で返り、深くネストした文書もスタックオーバーフローなしで走査します。