JSONPath Tester

Test JSONPath expressions online. Supports dot notation, wildcards, recursive descent, and bracket notation. Shows matched path for each result.

100% private · runs locally

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].

Expression
JSON input
Matches No matches
Results will appear here

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.