Free Online JSONPath Evaluator
Test and debug JSONPath expressions against any JSON data instantly. RFC 9535-compliant, fully client-side — no sign-up, no tracking, no data ever leaves your browser.
Related Developer Tools
Last updated: May 21 2026
Reviewed by the QuickTooly Team
JSONPath Evaluator Guide
Why Use QuickTooly's JSONPath Evaluator?
- RFC 9535-compliant: Built on jsonpath-plus, covering the 2024 standard — not the 2012-era implementation found on older sites.
- Instant evaluation: Results appear immediately as you click Evaluate — no page reloads.
- Private & secure: Your JSON data stays entirely in your browser — zero server uploads.
- Clear results: Matches are displayed as formatted JSON with a count badge so you always know how many nodes matched.
- Example chips: Quick-start expressions let you explore common patterns without memorizing syntax.
- 100% free: No limits, no registration, no watermarks.
What is JSONPath?
JSONPath is a query language for JSON, analogous to XPath for XML. It lets you extract specific values from a JSON document using a concise path expression. Originally proposed by Stefan Goessner in 2007 and formalized as RFC 9535 in 2024, JSONPath is widely used in REST APIs, test frameworks, and data pipelines.
A JSONPath expression always starts with $, representing the root of the JSON document. From there you can navigate using dot notation ($.store.name), bracket notation ($['store']['name']), wildcards, filters, and recursive descent operators.
JSONPath Syntax Reference
$— root element.— child operator (e.g.$.store.name)..— recursive descent (search all levels)*— wildcard, matches any element[n]— array index (e.g.$[0]for first element)[start:end]— array slice[?(@.price < 10)]— filter expression['key']— bracket notation for keys with special characters
Common JSONPath Examples
$.store.book[*].author— all authors in the book array$..price— every price field at any depth$.store.book[0]— first book object$.store.book[?(@.price < 10)]— books cheaper than $10$..*— every value in the entire document$.store.book[-1]— last book in the array
How to Use This JSONPath Evaluator
- Paste your JSON into the input area — or click "Format JSON" to pretty-print it first
- Enter a JSONPath expression starting with
$, or click one of the example chips to get started - Click Evaluate (or press Enter in the expression field) to run the query
- Review results — matched values are shown as formatted JSON with a match count
- Copy results with one click to use in your tests, docs, or code
Frequently Asked Questions
What is the difference between JSONPath and jq?
JSONPath is a query/selection language that extracts matching values from a JSON document. jq is a command-line JSON processor that also supports transformations and complex data manipulation. For simple extraction, JSONPath is usually simpler; jq is more powerful for scripting and transformation.
Does JSONPath support filter expressions?
Yes. Use [?(@.field == value)] syntax to filter array elements. For example, $.books[?(@.price < 20)] returns all books with a price under 20. The @ symbol refers to the current node being evaluated.
What is RFC 9535 and why does it matter?
RFC 9535 is the IETF standard for JSONPath published in 2024. It clarifies ambiguous behavior from the original 2007 proposal, especially around filter expressions, recursive descent, and result ordering. Tools built against the RFC produce consistent, interoperable results across implementations.
Is my JSON data sent to a server?
No. All evaluation happens locally in your browser using the jsonpath-plus library. Your data is never transmitted, stored, or logged anywhere.
Can I use JSONPath with arrays at the root level?
Yes. If your JSON is an array, $[0] returns the first element, $[*] returns all elements, and $[?(@.id == 1)] filters by property.
What happens when my JSONPath expression matches nothing?
The evaluator returns an empty result set and shows a "No matches found" message. This is not an error — it simply means no nodes in the JSON document satisfy your expression. Double-check key names for typos and ensure array indices are within range.