JSONPath Tester

Write an expression, see every matching value and its path. Live updates as you type.

Runs in your browser. Nothing is uploaded.
Path
Input JSON
Matches

JSONYard's online JSONPath tester evaluates JSONPath expressions live against any JSON document, returning every matching value and its path. It supports wildcards, recursive descent (..), array slices, unions, and filter predicates, and runs entirely in your browser.

Need a refresher? The JSONPath cheat sheet walks through every operator below with the same sample document.

Why test JSONPath expressions online?

JSONPath looks similar to XPath but with enough quirks (filter semantics, slice steps, recursive descent) that it pays to iterate against a real document instead of guessing. This online JSONPath evaluator updates the result list every time you change either the path or the JSON, so you can refine a query the way you'd refine a CSS selector — without leaving the page. If you're not sure whether the data is valid in the first place, run it through the JSON validator first.

JSONPath syntax cheat sheet

  • $ — the root
  • .name or ['name'] — child by name
  • [0], [-1] — array index (negative counts from end)
  • [*] — every element of an array or every value of an object
  • [0,2,5] — union of specific indices
  • [1:5], [:3], [2:], [::2] — slice with optional step
  • .. — recursive descent (any depth)
  • [?(@.price < 10)] — filter: @ is the current item; supports &&, ||, !, comparisons

Examples

Given the bookstore JSON in the input:

  • $.store.book[*].author — every author
  • $..price — every price, anywhere in the document
  • $.store.book[?(@.price < 10)] — books cheaper than 10
  • $.store.book[0,2] — the first and third books

FAQ

Whose JSONPath syntax is this?
Mostly Stefan Gössner's original syntax, the one most JSONPath libraries implement. We don't yet support every edge case of the RFC 9535 IETF standard — but the common subset works.
Is filter syntax safe?
Filters compile to a small JavaScript expression in your browser. Don't paste untrusted filter expressions into this tool. The JSON input itself is not eval'd — only the filter expression you type into the path box.
What about JMESPath?
JMESPath is a different (and arguably better-specified) JSON query language. We may add a JMESPath tester later. For now, JSONPath is what we support.
How do I test a JSONPath expression online without installing anything?
Paste your JSON into the left pane, type your expression into the Path box, and the matches update live — no signup, no install, no upload. Everything runs in your browser.
Does this JSONPath evaluator follow RFC 9535?
Mostly. We implement the practical subset most libraries (Stefan Gössner's original semantics) ship, which overlaps RFC 9535 in 95% of cases. Edge cases around filter operators and Unicode normalisation may differ.

Related JSON tools