Developer / JSON
JSONPath Tester (RFC 9535)
Test JSONPath expressions against your JSON and see every match with its normalized path, following the JSONPath standard, RFC 9535, with filters, slices, and functions.
JSONPath Tester (RFC 9535): The expression is parsed and checked as RFC 9535 defines it, so invalid expressions are rejected with the position of the error instead of silently matching nothing. It supports names, wildcards, indexes, slices, unions, descendant segments (..), and filters with comparisons, &&, ||, !, and the functions length(), count(), match(), search(), and value(). The implementation passes all 706 cases of the official JSONPath Compliance Test Suite. Runs 100% locally in your browser with zero server file uploads.
- Category
- Developer tools
- Runs
- In your browser
- Cost
- Free · no sign-up
- Availability
- Ready to use
Runs entirely in your browser
Matches: 1
| Path | Value |
|---|---|
$['store']['book'][0]['title'] | "Sayings of the Century" |
Expressions follow the JSONPath standard, RFC 9535, including filters, slices, and the functions length(), count(), match(), search(), and value(). Paths are shown in the standard's normalized form.
Quick reference
$ is the whole document and @ the current item in a filter. .name or ['name'] selects a member, [0] an element (negative counts from the end), [1:3] a slice, * every child, and .. searches at every depth. Filters keep children for which the condition holds: [?@.price < 10 && @.category == 'fiction'].
To browse the document as a tree, use the JSON viewer; to check it against a schema, the JSON Schema validator.
Where JSONPath is used
Kubernetes (kubectl -o jsonpath), API testing tools, log and monitoring pipelines, and many databases use JSONPath or close relatives to pick values out of JSON. Since 2024 the standard, RFC 9535, settles the details that older implementations disagreed on.
How to use it
- Paste your JSON, or use the bookstore sample.
- Type a JSONPath expression, or click an example to start from.
- Read each match and its path, and copy the matched values.
Privacy & limitations
The JSON and expression are evaluated in your browser and never uploaded.
Related tools
Frequently asked questions
Why does my expression from another tool fail here?
Older JSONPath libraries differ in small ways, such as filter syntax ?(@.price < 10) versus ?@.price < 10, or script expressions. Both forms of filter work here; JavaScript inside expressions does not, as the standard forbids it.
What is a normalized path?
A unique, canonical path to a single node, such as $['store']['book'][0], with names in brackets and quotes. It is useful for reporting exactly which values matched.
How do I select by a pattern?
Use match() for a whole-string regular expression or search() for a substring: $.items[?match(@.sku, 'A-[0-9]+')].
Free tool · runs in your browser · no account required