JSONPath Tester
Test JSONPath expressions against your JSON and see every matched value and its exact path.
Matched values
Matched paths
Paste JSON above, type a JSONPath expression, and the matches appear instantly.
JSONPath syntax cheat sheet
$- The root of the document.
$.store.book/$['store']['book']- Child property, dot or bracket notation.
$..author- Recursive descent — every
authorat any depth. $.store.book[*]/$.store.*- Wildcard — all elements or all properties.
$.store.book[0],[-1]- Array index; negative counts from the end.
$.store.book[0:2],[::2]- Array slice with optional step.
$.store.book[0,2],['a','b']- Union of several indexes or names.
$.store.book[?(@.price < 10)]-
Filter. Use
==,!=,<,<=,>,>=,=~ /regex/i,&&,||and!.$inside a filter still means the root. $.store.book[?(@.isbn)]- Existence test — items that have the property.
$.store.book.length- Length of an array or string.
How it works
Paste a JSON document, type a JSONPath expression, and every match is evaluated as you type.
The left pane shows the matched values as a JSON array; the right pane shows the normalised
path of each match, so you always know where a value came from. The expression engine
supports child access, recursive descent (..), wildcards, array indexes, slices,
unions, length, and filter expressions with comparisons, regex matching and
boolean operators.
If the JSON cannot be parsed you get the exact line and column of the problem; if the expression is malformed you get a plain-English reason instead of a stack trace. Everything runs in your browser with plain JavaScript — no server, no upload, no account — so it is safe to test paths against API responses, configuration files and other private payloads. Use Copy matches, Copy paths or Download .json to take the result with you.
Frequently asked questions
How do I test a JSONPath expression on my own JSON?
Paste your JSON document into the top box and type a JSONPath expression such as $.store.book[0].title in the field below it. The tool evaluates the query as you type and shows two panes: the matched values as a JSON array, and the normalised path of every match so you can see exactly where each value came from. Press Enter or use Run query to force an immediate re-run.
Which JSONPath syntax does the tester support?
It supports the standard Goessner-style syntax: $ for the root, dot and bracket child access ($.store.book and $['store']['book']), recursive descent ($..author), wildcards ([*] and .*), array indexes including negative ones ([-1]), slices ([0:2], [::2]), unions ([0,2] and ['a','b']), .length on arrays and strings, and filter expressions like [?(@.price < 10 && @.category == 'fiction')] with ==, !=, <, <=, >, >=, regex matching via =~ /pattern/i, !, && and ||. Inside a filter, @ is the current item and $ still refers to the root document.
Is my JSON uploaded anywhere?
No. The parser and the JSONPath engine are plain JavaScript that runs entirely in your browser — there is no server, no API call and no account. Nothing you paste ever leaves your device, so it is safe to test expressions against production API responses, access tokens and private configuration files. You can even use the page offline once it has loaded.