Paste in JSON or a URL, drop a file, , or load an to begin.
Your results will appear here
Paste your data or a URL above, or start with one of these:
Tip: press Ctrl + Enter in the editor to process.
- 3 query languagesJSONPath (RFC 9535), JSONSelect and JSON Query.
- Matched pathsSee exactly where every JSONPath match lives.
- 100% localYour data never leaves the browser. No uploads, no tracking.
- Clickable examplesClick any example below to try it on the sample data.
JSONPath examplesSyntax reference ↗
- All authors
$.store.book[*].author→["Nigel Rees", "Evelyn Waugh", "Herman Melville", "J. R. R. Tolkien"]- Every price, at any depth
$..price→[8.95, 12.99, 8.99, 22.99, 19.95]- Last book
$.store.book[-1].title→["The Lord of the Rings"]- First two books
$.store.book[0:2].title→["Sayings of the Century", "Sword of Honour"]- Books with an ISBN
$..book[?@.isbn].title→["Moby Dick", "The Lord of the Rings"]- Books under 10
$..book[?@.price < 10].title→["Sayings of the Century", "Moby Dick"]- Regex search
$.store.book[?search(@.author, "Tolkien")].title→["The Lord of the Rings"]
JSONSelect examplesSyntax reference ↗
- All authors
.author→["Nigel Rees", "Evelyn Waugh", "Herman Melville", "J. R. R. Tolkien"]- Titles inside "book"
.book .title→["Sayings of the Century", "Sword of Honour", "Moby Dick", "The Lord of the Rings"]- First book
.book > :first-child > .title→["Sayings of the Century"]- Books with an ISBN
:has(.isbn) > .title→["Moby Dick", "The Lord of the Rings"]- Prices under 10
.price:expr(x < 10)→[8.95, 8.99]- Title contains text
.title:contains("Lord")→["The Lord of the Rings"]- All numbers
number→[8.95, 12.99, 8.99, 22.99, 19.95]
JSON Query examplesSyntax reference ↗
- All titles
.store.book | map(.title)→["Sayings of the Century", "Sword of Honour", "Moby Dick", "The Lord of the Rings"]- Filter, then map
.store.book | filter(.price < 10) | map(.title)→["Sayings of the Century", "Moby Dick"]- Sorted prices
.store.book | sort(.price) | map(.price)→[8.95, 8.99, 12.99, 22.99]- Sum of prices
.store.book | map(.price) | sum()→53.92- Count per category
.store.book | groupBy(.category) | mapValues(size())→{"reference": 1, "fiction": 3}- Pick fields, first two
.store.book | pick(.title, .price) | limit(2)→[{"title": "Sayings of the Century", "price": 8.95}, {"title": "Sword of Honour", "price": 12.99}]