JSONPath Tester

Run JSONPath queries with filters and recursive descent against any JSON document.

Supports $, .key, [*], [n], [a:b], .. recursive descent, and filters like [?(@.price < 10)].

About JSONPath Tester

JSONPath Tester runs a JSONPath query — the JSON analogue of XPath — against a JSON document and returns the matching values. The full JSONPath syntax is supported: dot and bracket access (`$.users[0].name`), wildcards (`$.users[*].email`), recursive descent (`$..price`), filter expressions (`$.users[?(@.active==true)]`), array slices (`$.items[0:5]`), and union (`$['name','id']`). The query runs as you type with the result list updating live.

Reach for it whenever you need to extract specific values from a deep JSON document without writing code: pull every `image_url` from a product catalog, find every node with a given role from an org tree, list all error messages buried in a nested response, debug why a server-side template's `$.user.profile.avatar` returns nothing. JSONPath queries; it does not modify the document. To remove or keep keys by path, use JSON Property Editor; to enumerate every leaf path in a document, use JSON Flatten.

Examples

Input
doc: {"users":[{"name":"Ada","active":true},{"name":"Bob","active":false}]}
query: $.users[?(@.active==true)].name
Output
["Ada"]

Filter expression keeps only objects where `active` is true, then projects the `name` field.

Frequently asked questions

How is this different from JSON Flatten?

Flatten produces a path map of every leaf in the document — every value gets its own key. JSONPath queries: it returns only the values matching one specific expression. Use Flatten to enumerate; use JSONPath to extract.

How is this different from JSON Property Editor?

Property Editor modifies the document — it removes or keeps keys by path. JSONPath only reads — it returns matching values without touching the source. Use JSONPath for queries; use Property Editor for redactions and projections.

Which JSONPath dialect is supported?

The widely-implemented Stefan Goessner dialect plus the common extensions (recursive descent `..`, filter expressions `?(…)`, array slices `[0:5]`). The IETF RFC 9535 JSONPath draft is largely a subset; queries that work here typically work everywhere.

Is the input document validated?

It must be valid JSON for the query to run; the tool surfaces a parse error if not. Once parsed, every JSONPath expression runs without further validation — invalid expressions produce an empty result and an error message.