Skip to content

JSON Path Tester

Test a JSONPath-style query against a document and see what it matches.

Runs in your browserNo account neededFree
Loading tool…

Processing: This tool runs entirely in your browser. Your input and any file you open stay on your device — nothing is uploaded to a server.

How to use the json path tester

  1. Paste your JSON.
  2. Write a path such as $.users[*].email.
  3. Read the matches, and the count above them.

About this tool

Write a path, see what it matches, adjust. That loop is much faster than editing code and re-running it to find out whether a query was right.

A documented subset of JSONPath is supported: <code>$</code> for the root, <code>.key</code> and <code>['key']</code>, array indices including negative ones counting from the end, <code>[*]</code> as a wildcard, and <code>..</code> for recursive descent.

Filter expressions such as <code>[?(@.age>18)]</code> and array slices such as <code>[1:3]</code> are not supported, and the page tells you so directly when you use one. That matters more than it sounds: JSONPath implementations disagree with each other on exactly these features, and a query returning nothing is indistinguishable from one that matched nothing. Being told the syntax is unsupported saves the debugging session that would otherwise follow.

Everything happens in the page. JSON commonly carries API keys, personal records and internal identifiers, so nothing here is uploaded, logged or sent to a server — which is exactly why a browser tool is the right place to inspect it.

Common uses

  • Working out the right path before writing it into code.
  • Checking what a query in an existing config actually matches.
  • Pulling a nested list out of an API response.

Frequently asked questions

Which JSONPath syntax is supported?
$ root, .key, ['key'], [0] and negative indices, [*] wildcard, and .. recursive descent. Filters and slices are not, and are reported as unsupported rather than silently returning nothing.
Why not support filter expressions?
JSONPath implementations disagree substantially on filters. Supporting a subset that behaves differently from your server's library would cause more problems than it solves.
What does .. do?
Recursive descent — it searches at any depth. $..email finds every email field wherever it appears.

Related tools