Every price in a store
In the classic bookstore example, $..price finds the four book prices and the bicycle's: 8.95, 12.99, 8.99, 22.99 and 19.95.
Run a JSONPath expression against your JSON and see every match and its path.
For example $.store.book[*].title or $..book[?(@.price < 10)]
Runs in your browser — nothing you enter is sent to a server.
Paste JSON and type a JSONPath expression; the matching values are listed as you type. Turn on Show the path to see where each match is, for example $.store.book[2].price.
Supported syntax (RFC 9535 and the original JSONPath):
$ the root; .name or ['name'] a member; * every member or item[0], [-1] an index (negative counts from the end); [0,2] several; [1:3], [::2] a slice.. search at every depth, as in $..price[?(@.price < 10)] a filter with ==, !=, <, <=, > or >=, and [?(@.isbn)] to keep items that have a memberIn the classic bookstore example, $..price finds the four book prices and the bicycle's: 8.95, 12.99, 8.99, 22.99 and 19.95.
$..book[?(@.price < 10)].title returns "Sayings of the Century" and "Moby Dick".
JSONPath libraries differed for years until RFC 9535 (2024) standardised it. Filters with functions, regular expressions or && and || vary most between libraries and aren't supported here.
The path is valid but matched nothing — often a typo in a member name (names are case-sensitive) or an index past the end.
No. It is parsed and queried in your browser.
Format, validate and minify JSON, with the exact line and column of any error.
Developer Tools
Compare two JSON documents and list every added, removed and changed value by path.
Developer Tools
Test JavaScript regular expressions with live highlighting, groups and replacement.
Developer Tools