JSONPath Tester
Write a JSONPath query and see exactly which values it selects. The evaluator follows RFC 9535, the IETF JSONPath standard, including filter expressions with comparisons and the functions length, count, match, search and value, and it lists the normalized path of every match.
Test a JSONPath Expression
Where the error is
Result
Matched values (JSON array)
Matched nodes
How to Use the JSONPath Tester
- Paste your JSON (a bookstore sample is provided).
-
Type a JSONPath expression starting with
$. - Press Run Query.
- Read the matched values as a JSON array and the table of normalized paths.
About This Tool
Developers writing queries for API gateways, test assertions, Kubernetes kubectl output or data pipelines, and anyone learning JSONPath.
Input: JSON + JSONPath · Output: Matched values and paths.
Features and Limitations
Features
- Child, wildcard, index, negative index, slice and recursive descent (..) selectors.
- Filters with ==, !=, <, <=, >, >=, &&, || and !, existence tests and the five standard functions.
- Normalized paths such as $['store']['book'][0] for each result.
- Filters are parsed and interpreted by the tool; nothing is evaluated as JavaScript.
Limitations
- Follows RFC 9535, so some older Goessner/Jayway extensions are not supported, for example script expressions (@.length-1), .length, or functions like min() and sum().
- Regular expressions in match() and search() use the browser's JavaScript regex engine, which is close to but not exactly I-Regexp.
- The table shows the first 1,000 matches.
- Results are computed in your browser; nothing you enter is sent to a server.
Example
On the sample,
$.store.book[?@.price < 10].title returns
["Sayings of the Century", "Moby Dick"], and
$..price returns all four prices.
Frequently Asked Questions
Which JSONPath dialect is used?
RFC 9535, published by the IETF in 2024. It standardises the syntax that most implementations share; filters can be written as ?@.x or ?(@.x).
How do I filter by a field that may be missing?
Use an existence test, for example $.store.book[?@.isbn] selects only books that have an isbn.
Can I use regular expressions?
Yes, with match(@.title, 'M.*') for a whole-string match or search(@.title, 'Dick') to find a substring.
Why do I get no matches?
Check that the path starts at $, that names are spelled with the right case and that filters are applied to arrays or objects (the brackets after book, not after a single value).
Related Tools
More like this: all Format & Validate tools, all Developer & Web tools or the TinySandy home page.