AZ Tools

JSONPath Tester

Developer

Paste a JSON document and a JSONPath expression. The tool evaluates the path against the document and shows every matching value as a JSON array. Supports the common subset: `$` root, `.key` dot navigation, `[n]` index (positive and negative), `[*]` wildcard, `..` recursive descent, and `['key']` bracket-quoted keys. Useful for sanity-checking a JSONPath before pasting it into jq, Bruno, Postman, k6, or a CloudWatch query.

Try:

Matches (3 matches)

[
  "Evelyn Waugh",
  "Herman Melville",
  "Nigel Rees"
]

Supports `$`, `.key`, `..key`, `[n]`, `[-1]`, `[*]`, and `['key']`. Filters and slices aren't supported — use jq for those.

How to use

  1. Paste your JSON in the top box (the default sample works as a starting point).
  2. Write a JSONPath expression — click an example chip if you're not sure.
  3. Read off the matched values, or copy them as a JSON array.

Frequently asked questions

What JSONPath dialect is this?
A practical subset of the Goessner / RFC 9535 syntax — root `$`, child `.key`, recursive `..`, index `[n]`, wildcard `*`, and quoted keys `['x']`. Filter expressions (`[?(@.price < 10)]`), slices (`[0:2]`), unions (`[0,2]`), and script expressions are not supported. Use jq for those.
Why does my path return nothing?
Common causes: typos in key names (JSONPath is case-sensitive), the field is missing on some items (recursive `..` skips silently rather than erroring), or the input isn't valid JSON. Try a simpler path first to confirm the data is what you expect.
Does `$..price` find prices at every depth?
Yes — `..` is recursive descent and `price` then filters to nodes that have a `price` key. It returns the values, not the objects containing them. To get the containers, use `$..*` and filter mentally.
Can I run this against a large API response?
Yes locally — parsing and walking is fast for documents up to a few MB. For real APIs you'd typically use jq on the command line or Bruno/Postman's built-in JSONPath; this tester is for iterating on the expression itself before you commit it.

Related tools