JSONPath Tester
Test JSONPath expressions online. Supports dot notation, wildcards, recursive descent, and bracket notation. Shows matched path for each result.
Test JSONPath expressions interactively against any JSON document. Results update in real time
as you type, and each match shows the full path alongside the value. Supports the standard
JSONPath syntax: $ (root),
. (child),
.. (recursive descent),
[*] (wildcard),
and array index access like [0].
Related tools
Frequently asked questions
What is JSONPath?
JSONPath is a query language for JSON, analogous to XPath for XML. It lets you extract values from a JSON document using a path expression. Originated by Stefan Goessner in 2007, it's widely used in tools like AWS JSONPath (Step Functions, EventBridge), Kubernetes RBAC policies, Gatling, and REST-assured test assertions.
What syntax is supported?
Supported operators: $ (root),
.key (dot notation child),
['key'] and
["key"] (bracket notation),
[0] (array index),
[*] (wildcard — all items),
.* (wildcard — all properties),
.. (recursive descent). Filter expressions
(?(@.price < 10)) are not currently supported.
What does <code class="font-mono text-xs bg-bg-subtle px-1 rounded dark:bg-stone-800">..</code> (recursive descent) do?
The .. operator searches the entire document tree,
not just direct children. For example, $..price
returns every price key at any depth
in the document. This is useful for extracting a named field from deeply nested or
inconsistently structured JSON.
Why does my expression return no results?
Common causes: the key name doesn't match exactly (JSONPath is case-sensitive),
the path skips a nesting level (try adding .. for deep search),
or you used a filter expression (?(...))
which isn't supported. Check the JSON tree structure first and use the quick-select
expressions as a starting point.
How is JSONPath different from JMESPath?
Both are JSON query languages, but they differ in syntax and features. JMESPath is used in
AWS CLI (--query)
and has richer projection and function support. JSONPath uses XPath-inspired
$ syntax and is more common in testing
frameworks (Rest-assured, Gatling) and tools like Kubernetes. They are not interchangeable.