JSONPath Tester
Test JSONPath expressions against your JSON and see matched values instantly — supports dot/bracket paths, array indexes, wildcards and recursion.
About the JSONPath Tester
This JSONPath tester evaluates an expression against your JSON and shows every matching value with its path. It supports the common syntax: $ for the root, dot and bracket property access, array indexes like [0], wildcards (.* and [*]) and the recursive descent operator (..) to search at any depth.
JSONPath is the query language behind many API tools, config systems and automation platforms. Testing an expression against real data here — and seeing exactly what it selects — is far quicker than trial and error inside your application.
Both the JSON and the query run entirely in your browser, so your data stays private.
How to Use the JSONPath Tester
- 1Paste your JSON into the input box.
- 2Enter a JSONPath expression such as $.store.book[*].title.
- 3Run it to see all matched values and their paths.
- 4Refine the expression and copy the results.
Frequently Asked Questions
What JSONPath syntax is supported?
The root $, child access by dot (.name) or bracket (['name']), array indexes ([0], [2]), the wildcard * for all properties or elements, and recursive descent .. to match a key at any depth. For example $..price finds every price anywhere in the document.
How do I select all items in an array?
Use [*] or .* after the array. $.items[*] returns every element of items, and $.items[*].name returns the name of each. To reach a specific one, use its index: $.items[0].name.
What does the recursive descent (..) operator do?
Two dots search every level of the document for the following key. $..id collects all id values no matter how deeply they're nested. It's powerful for pulling a field out of an irregular or deeply nested structure without knowing the exact path.
Are advanced filter expressions supported?
This tester focuses on the widely-used structural syntax — paths, indexes, wildcards and recursion. Complex filter predicates like [?(@.price<10)] found in some full implementations aren't evaluated. For most extraction and inspection tasks the supported subset is enough.
Is my JSON uploaded?
No. Evaluation runs entirely in your browser, so your data and query are never sent to a server. It's safe to test against real API responses.