Test any JSONPath in seconds
Type a JSONPath expression and see every matching value live — or browse the tree and click any node to copy its path. Perfect for jq queries, JMESPath, kubectl, and front-end selectors.
Find values with a JSONPath expression.
Paste JSON, type a query like $.store.books[*].title, and every match appears here with its exact path. Click Sample to try it.
Or browse the tree and click to copy
Prefer to explore visually? Expand the structure and click any node's path chip to copy it.
Ready when you are.
Paste JSON on the left, or choose a Sample… to try a quick example. Validation runs as you type — entirely in your browser.
Supported JSONPath syntax
$— root.key— child by name (when key is a valid identifier)["key with spaces"]— child by quoted name[0],[-1]— array index (negatives count from the end)[*]or.*— wildcard (all children)..— recursive descent, e.g.$..price[1:3],[::2]— array slice (start:end:step)[0,2],['a','b']— union of indices or names[?(@.price < 10)],[?(@.isbn)]— filter / existence- Combine:
$.store.books[?(@.inStock == true)].title
For more examples and patterns, see the JSONPath cheatsheet.
Examples
{ "user": { "address": { "city": "Oslo" } } }$.user.address.city
{ "items": [ { "sku": "A1" }, { "sku": "B2" } ] }$.items[1].sku
{ "user-id": 42, "x-rate-limit": 100 }$["x-rate-limit"]
Bracket notation when the key isn't a valid identifier.
Use cases
- Writing jq queries
Find the path here, then translate to jq syntax (e.g. .users[0].email) without typos.
- kubectl JSONPath
kubectl supports JSONPath selectors directly — copy the path and paste it into --jsonpath.
- GitHub Actions outputs
Pick the right path through fromJSON() output without trial and error.
- Frontend accessors
Verify the dot path before writing data?.user?.address?.city in TypeScript.
Frequently asked questions
What is JSONPath?+
A query language for picking values out of a JSON document, similar to XPath for XML. Paths start with $ (the root) and use dot notation or bracket notation: $.users[0].email.
How do I test a JSONPath expression?+
Paste your JSON, then type an expression like $.store.books[*].title in the Query box. Every matching value is listed with its exact normalized path, updating live as you type.
What JSONPath syntax is supported?+
Root ($), dot and bracket child access, array indices (including negative), wildcards ([*] and .*), recursive descent (..), array slices ([start:end:step]), unions ([0,2] or ['a','b']), and filters such as [?(@.price < 10)] and existence tests [?(@.isbn)].
How do I copy a path without writing an expression?+
Use the tree explorer below: expand the structure, hover any row, and click the path chip to copy its JSONPath to your clipboard.
Where can I use the path?+
JMESPath, jq (with small adjustments), the JSONPath libraries in JavaScript, Python, Go, and many config tools (e.g. kubectl, GitHub Actions outputs).