Too Much Tools logoToo Much Tools

JSONPath Tester

Run JSONPath queries against a JSON document and inspect the matches, locally.

Local, Runs entirely in your browser, your data never leaves your device.
Loading tool…

Query JSON documents with JSONPath expressions

This tool runs a JSONPath expression against a JSON document and shows every value it matches, plus the normalized path each match came from. It's for working out the right query before you bake it into code, whether you're extracting fields from an API response or writing a filter expression. Matching uses jsonpath-plus, so filter expressions and wildcards are supported, and evaluation happens locally as you type.

How to use the JSONPath Tester

  1. Paste a JSON document into the left panel, or load the example data.
  2. Type a JSONPath expression such as $.store.book[*].author into the query field.
  3. Read the matched values on the right and the match count above the field.
  4. Check the Paths panel below for the normalized location of each match.

The query field uses jsonpath-plus syntax, a superset of the original JSONPath, so filter expressions like ?(@.price<10) and recursive descent like $..author work alongside plain dot and bracket paths. The Paths panel shows each match's location as a JSON Pointer-style path rather than the query syntax you typed.

Frequently asked questions

What JSONPath syntax does this tool support?
It uses the jsonpath-plus library, which extends the original JSONPath with filter expressions such as ?(@.price<10), script expressions, and recursive descent with $.., beyond basic dot and bracket notation.
Why does the Paths panel look different from my query?
The Paths panel shows each match's normalized location, similar to a JSON Pointer, rather than echoing the JSONPath expression you typed; it's meant to show you exactly where in the document each value lives.
What happens if my JSONPath expression matches nothing?
The matches panel shows an empty array and the match count reads zero; an empty result usually means the path segment names or filter condition don't line up with the document's actual shape.
Is the JSON document I'm querying sent to a server?
No. The query is evaluated in your browser as you type; the document you're inspecting, even if it's a real API response with account data, never leaves your machine.