JSONPath Tester & Evaluator
Paste a JSON document, type a JSONPath expression and see the matching values and their normalized paths instantly. The evaluator supports child and bracket notation, array indexes including negative ones, wildcards, unions, slices like [1:3] or [::2], recursive descent with .., and filter expressions such as [?(@.price < 10 && @.category == 'fiction')] including existence checks, negation and regex matching.
Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 30, 2026
How it works
- 1
Paste your JSON into the left panel.
- 2
Type a JSONPath expression starting with $, or click one of the examples.
- 3
Read the matched values and their paths, then copy the result.
Example
$.store.book[?(@.price < 10)].title
{ "store": { "book": [
{ "title": "A", "price": 8.95 },
{ "title": "B", "price": 12.99 },
{ "title": "C", "price": 8.99 }
] } }["A", "C"]What JSONPath is used for
JSONPath is a query language for JSON, standardized as RFC 9535 and popular in API testing tools, Kubernetes, log processors and workflow automation. It lets you pull a single field or a filtered list of objects out of a large response without writing code, which makes it ideal for assertions, extraction rules and quick data exploration.
Filter expressions in practice
A filter such as [?(@.price < 10)] visits each child of the array or object and keeps the ones for which the expression is true, where @ is the current child. Combine conditions with && and ||, check that a field exists with [?(@.isbn)], negate with !, and match text with =~. Implementations differ slightly, so always confirm behaviour on the engine you will deploy.
Frequently asked questions
Which JSONPath syntax is supported?
Dot and bracket child access, array indexes (also negative), wildcards, unions, slices, recursive descent (..) and filter expressions with comparisons, &&, ||, ! and =~ for regular expressions. Script expressions beyond filters are not evaluated.
Does this run arbitrary JavaScript in filters?
No. Filters are parsed by a small built-in expression evaluator, not eval, so pasting an untrusted query or document is safe.
What happens when nothing matches?
You get an empty result with zero matches. A syntax problem in the expression shows an error message instead.
How does this differ from JMESPath?
JSONPath addresses nodes with a path-like syntax starting from $, similar to XPath. JMESPath uses a different expression language with pipes and functions. This tool evaluates JSONPath only.