JS & JSON

JSON Path Tester

Test JSONPath expressions against JSON data and see matching results instantly. Supports standard JSONPath syntax including wildcards, filters, and recursive descent.

Free Client-Side No Sign-Up Nothing Stored
JSON Data
JSONPath Expression
Quick examples:
Results
Results appear here…

What This Tool Does

The JSON Path Tester evaluates JSONPath expressions against your JSON data and shows all matching results. It uses the jsonpath-plus library — the most complete JSONPath implementation available, supporting the full Goessner spec plus extensions like recursive descent, filter expressions, and slice notation.

Results update live as you type. Everything runs in your browser — your JSON never leaves your device.

JSONPath Quick Reference

$ Root element
. Child separator
.. Recursive descent — search all levels
* Wildcard — match all elements
[n] Array index (0-based)
[1,3] Multiple indices
[1:4] Slice — indices 1 to 3
[-1] Last element
[?(@.x > 5)] Filter — elements where x > 5
@ Current element (used in filters)

How to Use

1. Paste your JSON into the data panel, or click Load Sample to use the example.
2. Type a JSONPath expression in the expression field — results update live.
3. Click any Quick Example chip to load a pre-built expression.
4. Click Copy Results to copy the matching values.

Frequently Asked Questions

What is JSONPath?
JSONPath is a query language for JSON, similar to XPath for XML. It lets you extract specific values from a JSON document using path expressions. It was originally defined by Stefan Goessner in 2007 and is widely used in APIs, testing frameworks, and data processing tools.
What does $ mean in a JSONPath expression?
$ refers to the root element of the JSON document. All JSONPath expressions start with $. For example, $.name selects the "name" property of the root object, and $.users[0].email selects the email of the first user.
How do wildcards work?
The * wildcard matches all elements at that level. For example, $.users[*].name selects the name of every user. $.*.price selects the price property of every object at the root level.
What is recursive descent (..)?
The .. operator searches recursively through all levels of nesting. For example, $..name finds every "name" property anywhere in the document, no matter how deeply nested.
How do filter expressions work?
Filters use the syntax [?(@.property operator value)]. For example, $.users[?(@.age > 18)] selects all users where age is greater than 18. The @ symbol refers to the current element being tested.
Is my data sent to a server?
No. JSONPath evaluation runs entirely in your browser using the jsonpath-plus library loaded from CDN. Your JSON data never leaves your device.