Runs 100% in your browser — nothing is uploaded
JSON & Data Formats

JSONPath Tester

Test JSONPath expressions against JSON live, with wildcard, index, slice, and recursive descent support.

JSONPath Tester
Client-side

About this tool

The JSONPath Tester lets you write a JSONPath expression and see the matched nodes update live as you type, against any JSON document you paste in. It is built for the everyday task of figuring out "what path do I need to extract this field" when working with deeply nested API responses, config files, or log payloads.

This tool implements a practical, dependency-free subset of JSONPath directly in TypeScript, supporting: $ for the root, .key and ['key'] for child property access, [*] for wildcard access across array elements or object values, [n] for a specific array index (including negative indices), [start:end] for array slices, and ..key for recursive descent — finding a key at any depth in the document. This subset covers the overwhelming majority of real-world JSONPath usage.

As you type, the JSON is parsed and the expression evaluated with a 200ms debounce so the results panel stays responsive. Matches are shown as a JSON array, with a running count ("3 matches found") above the results. Invalid JSON or an unparseable JSONPath expression produce a specific, readable error rather than a silent empty result.

Note: this is a practical subset, not the full JSONPath specification — it does not support filter expressions like [?(@.price<10)], script expressions, or union selectors. This tool is aimed at the day-to-day extraction and exploration use case.

FAQ

What JSONPath syntax is supported?
The root $, dot access, bracket access, wildcards ([*]), numeric indices (including negative), array slices ([start:end]), and recursive descent (..key) to find a key at any depth.
Does this support the full JSONPath specification?
No — this is a deliberately practical subset. It does not support filter expressions like [?(@.price < 10)], script expressions, or multi-key union selectors. This tool focuses on the extraction patterns developers use most often.
How does recursive descent (..key) work?
..key searches the entire JSON tree at every depth for any key matching that name and collects all matches, regardless of how deeply nested they are.
What happens with an invalid JSONPath expression or invalid JSON?
Both are validated separately. Invalid JSON produces a JSON parse error before any path evaluation. An unparseable JSONPath expression produces a specific syntax error.
Is there a sample JSON I can try this on?
Yes — the Paste Sample button loads the classic JSONPath "bookstore" example, the reference example used across most JSONPath documentation, pre-loaded with a working expression.