DEVELOPER & DATA

JSONPath Tester

Run a JSONPath query against a JSON document and see every match with its normalised path — wildcards, descendants, slices, unions and filters — in the browser.

Matches with values and normalised paths, the count, a plain-words reading of each path segment, and clear errors for the parts of JSONPath that are not supported (functions, scripts).

Example: On the classic bookstore document, $..price finds four prices, $.store.book[?(@.price < 10 && @.category == 'fiction')].title finds Moby Dick, and [::2] takes every other book.

v0.1.0 · last reviewed 20 September 2026
Loading the workspace…
BUILT TO BE UNDERSTOOD

A query language,
evaluated in the open.

The syntax supported, how filters are evaluated, and where the implementation stops.

Syntax

$ is the root; .name and [‘name’] select a member, [0] and [-1] an index, [1:4] and [::2] a slice, .* and [*] every child, [0,2] and [‘a’,‘b’] a union, and .. before any of these searches all descendants. Results come back with a normalised path for each match, in document order.

Filters

[?(...)] keeps the children for which the expression is true. @ is the child being tested and $ the root; comparisons (== != < <= > >=) work between paths, numbers, strings and true/false/null, combined with &&, || and !, or a bare path as an existence test. Numbers compare with numbers and strings with strings; == and != compare whole values.

Not supported

RFC 9535 function extensions (length, count, match, search, value) and the script expressions of older implementations are not evaluated; the page reports them instead of guessing. Nothing leaves the browser; the same four anonymous usage counts as the rest of the site apply.

SOURCES

Last reviewed 20 September 2026. How results are checked: How we verify.