JSONPath Tester
Query a JSON document with a JSONPath expression and see every matching value next to its exact resolved path. Supports wildcards, recursive descent, array slices and filter expressions. Runs entirely in your browser.
Input
Output
| Path | Value |
|---|---|
| No data yet | |
Guides
The JSONPath Tester lets you run a JSONPath expression against any JSON document and instantly see every matching value alongside its exact resolved path (for example $.store.book[0].title). It is the fastest way to build, debug and verify the path expressions you use in code, API mappings, config files and data pipelines — no install, no sign-up.
How to use it
- Paste or type your JSON into the JSON data box. You can load a sample store catalogue with Try an example.
- Enter a JSONPath expression such as
$.store.book[*].author. - The results update as you type: a summary of how many nodes matched, plus a Path / Value table listing each match with its concrete path. Copy the table or download it as CSV.
Because each match is shown with its fully-resolved path, you can see not just what matched but where it lives in the document — invaluable when a wildcard or recursive query returns more than you expected.
Supported JSONPath syntax
This tester implements a practical subset of the Stefan Goessner JSONPath dialect:
$— the root of the document..keyor['key']— child access by name (dot or bracket notation; single or double quotes).[n]— array index. Negative indices count from the end, so[-1]is the last element.[*]or.*— wildcard: all children of an object or array...key— recursive descent: matchkeyat any depth (also..*and..[n]).[start:end]and[start:end:step]— Python-style array slices, negative bounds allowed.[?(@.field OP value)]— filter expression.OPcan be==,!=,<,<=,>or>=, compared against a single string, number, boolean ornullliteral on the right (for example[?(@.price > 15)]or[?(@.category == 'fiction')]). The@.fieldtarget may be a nested path such as@.author.name, and[?(@.field)]on its own tests that the field exists.
Union selectors ([0,1]), full script expressions and regular-expression matches are intentionally not supported to keep the tester lightweight and predictable.
What does JSONPath do?
JSONPath is to JSON what XPath is to XML: a compact query language for selecting parts of a structured document. Instead of writing loops to dig into nested objects and arrays, you describe the location you want and let the evaluator find every match.
Why show the resolved path for each match?
A single expression like $..price can match values scattered across many nesting levels. Listing the resolved path ($.store.book[2].price) for each hit removes the ambiguity and makes it obvious which value came from where — so you can tighten your expression with confidence.
What happens if my JSON or expression is invalid?
Invalid JSON is flagged on the input field before evaluation runs. If the expression can't be parsed, or simply matches nothing, you get a clear message rather than an error — so you can iterate quickly.
Is my data private?
Yes. This tool runs entirely in your browser. Your JSON and your expressions are never uploaded to a server — the parsing and evaluation happen locally on your device, which also means it keeps working offline.