{}JSON FYI
JSONPath Tester & Finder

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.

JSON document
Matches

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.

EmptyType: Nodes: 0Depth: 0Size: 0 B

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

Nested object
Input
{ "user": { "address": { "city": "Oslo" } } }
Output
$.user.address.city
Array element
Input
{ "items": [ { "sku": "A1" }, { "sku": "B2" } ] }
Output
$.items[1].sku
Key with special characters
Input
{ "user-id": 42, "x-rate-limit": 100 }
Output
$["x-rate-limit"]

Bracket notation when the key isn't a valid identifier.

Use cases

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

Related tools & guides