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
| Expression | Description |
|---|---|
| $ | Root element |
| .key | Child element |
| ..key | Recursive descent — any depth |
| [*] | Wildcard — all elements |
| [0] | Array index (zero-based) |
| [-1] | Last array element |
| [?(@ < 10)] | Filter expression |
| $..price | All price values |
| $.a[*].b | Field b of all items in a |
How to Use JSONPath Tester
- 1Paste your JSON data into the input field.
- 2Enter a JSONPath expression (e.g. $.store.book[*].author).
- 3See matching values highlighted in real time.
- 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.
Related Tools
JSON Formatter & ValidatorFormat, validate, and beautify JSON data with syntax highlighting and error detection.
JWT DecoderDecode and inspect JWT tokens. View header, payload, and verify signatures.
Base64 Encode/DecodeEncode text to Base64 or decode Base64 back to text. Supports UTF-8 and binary data.
URL Encode/DecodeEncode or decode URL components. Handle special characters, query strings, and full URLs.
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.