ZenovayTools

JSONPath Tester

Test JSONPath expressions against JSON data. Explore, filter, and extract values from nested JSON structures with real-time results.

Quick examples

Matches

3 results
[
  "Moby Dick",
  "The Lord of the Rings",
  "Sayings of the Century"
]
JSONPath Syntax Reference
ExpressionDescription
$Root element
.keyChild element
..keyRecursive descent — any depth
[*]Wildcard — all elements
[0]Array index (zero-based)
[-1]Last array element
[?(@ < 10)]Filter expression
$..priceAll price values
$.a[*].bField b of all items in a

How to Use JSONPath Tester

  1. 1Paste your JSON data into the input field.
  2. 2Enter a JSONPath expression (e.g. $.store.book[*].author).
  3. 3See matching values highlighted in real time.
  4. 4Try the sample expressions to learn JSONPath syntax.
Zenovay

Track your website performance

Real-time analytics, session replay, heatmaps, and AI insights. 2-minute setup, privacy-first.

Try Zenovay Analytics — Free

Frequently Asked Questions

What is JSONPath?
JSONPath is a query language for JSON, similar to XPath for XML. It allows you to navigate and extract data from JSON documents using path expressions. Developed by Stefan Goessner in 2007, JSONPath is widely used in tools like AWS Step Functions, Kubernetes admission webhooks, Grafana, and Elasticsearch queries. The dollar sign ($) represents the root element, dots (.) navigate to properties, and brackets ([]) access array elements.
What is the difference between dot and bracket notation?
Both access the same data. Dot notation: $.store.book[0].title. Bracket notation: $['store']['book'][0]['title']. Dot notation is shorter and more readable; bracket notation is required for keys with spaces, special characters, or keys that look like numbers. You can mix both: $.store['book items'][0].title.
What does the wildcard * do?
The wildcard * matches any element at the current level. $.store.book[*] returns all books. $.store.*.price returns all price properties inside store. $..* is the recursive descent wildcard — it returns every single node in the entire document. Wildcards are useful when the exact key or index is unknown.
How do filter expressions work?
Filter expressions use the syntax [?(condition)] to select array elements matching a condition. $.store.book[?(@.price < 10)] returns books cheaper than 10. The @ symbol refers to the current element. Supported operators: ==, !=, <, >, <=, >=. Example: $.users[?(@.active == true)].name returns names of active users.
What is recursive descent (..)?
The double dot (..) is the recursive descent operator — it searches the entire document tree at any depth. $..price returns all price values anywhere in the document, regardless of nesting. $..book[0] returns the first book element at any depth. This is equivalent to XPath's // operator. Useful for finding keys in deeply nested or unknown structures.