JSONPath Tester
Query a JSON document with a path expression and see exactly which values match.
[ "Refactoring", "The Pragmatic Programmer", "Clean Code" ]
- Extracting a list of IDs from a paginated API response
- Building the path expression for a Postman test or a CI assertion
- Finding where a value lives inside an unfamiliar nested payload
- Filtering an array of records down to the ones matching a status
Free and private. Everything runs on your own device, with no account and no uploads.
When an API returns a deeply nested response and you only need three fields out of it, a path expression beats scrolling through the payload. This tester runs JSONPath expressions against your document and shows the matching values live as you type, with support for dot and bracket notation, array indexes, wildcards, recursive descent and simple comparison filters. It is a fast way to build and verify the expression before you hard-code it in a script, a jq pipeline or an automation step.
The everyday subset: $ for the root, .key and ['key'] for properties, [0] for array indexes, [*] for all elements, .. for recursive descent, and [?(@.key==value)] filters with ==, !=, >, <, >= and <=.
An expression like $..price searches the entire document at any depth and returns every value stored under that key, which is the quickest way to find a field when you do not know where it lives.
Filters compare strictly, so @.status=="active" will not match the number 1 or the string "Active". Check the exact value and casing in the document, and use single quotes around string literals.
No. Length, slice and script expressions are deliberately left out: the goal is a predictable subset that behaves the same everywhere, not full parity with a specific JSONPath library.
- 1
Paste your JSON
Drop in the document or API response you want to query.
- 2
Write a path expression
Start with $ and drill down, or click one of the example expressions.
- 3
Watch the matches update
The match count and the matching values refresh as you type.
- 4
Copy the result
Take the matched values or the finished expression into your code.
- ·Build the expression a segment at a time and watch the match count: the step where it drops to zero is the step that is wrong.
- ·Use $..key first to discover where a field lives, then write the precise path for production use.
- ·A wildcard on an object ($.store.*) returns its values, which is handy for turning a keyed map into a list.