Nothing yet — inputs you run here are remembered on this device.
No matches. The expression parsed fine — nothing in this document satisfies it.
Paste JSON on the left and type an expression above — or pick one of the presets.
Nothing yet — inputs you run here are remembered on this device.
No matches. The expression parsed fine — nothing in this document satisfies it.
Paste JSON on the left and type an expression above — or pick one of the presets.
Updated 2026-08-02
Test JSONPath expressions against your own JSON online for free. Type an expression, see every match instantly, and — crucially — see the exact path each match came from, so you can tell which node answered rather than guessing from the value.
The full grammar people actually reach for is here: recursive descent ($..author), wildcards,
negative indices, slices ($..book[1:3], $..book[::2]), unions ($..book[0,2]) and filter
expressions ($..book[?(@.price < 10)]). Filters are parsed and compared directly rather than
handed to eval, and everything runs in your browser, so the document stays on your machine. This
is the same engine that powers the path queries in our JSON Viewer, so an expression you work out
here behaves identically there.
$..author
$.store.book[0].author "Nigel Rees" $.store.book[1].author "Evelyn Waugh" $.store.book[2].author "Herman Melville"
$..book[?(@.price < 10)]
$.store.book[0] { category, author, title, price }
$.store.book[2] { category, author, title, isbn, price }
$..book[:2] first two $..book[0,2] the first and the third $..book[-1] the last one
$..book[:2] -> $.store.book[0], $.store.book[1] $..book[0,2] -> $.store.book[0], $.store.book[2] $..book[-1] -> $.store.book[3]
curl -X POST https://thesnaptools.com/api/v1/tools/jsonpath \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"json":"$..author"}'