100% client-side · no sign-up
JSONPath / JMESPath query tester
Write a query, run it against your JSON, and see the result instantly — wildcards, filters, pipes, and functions like length() and sort_by() are all supported.
JSON Input
Result
Try an example
Supported syntax
| Syntax | Description | Example |
|---|---|---|
| @ | Identity — the whole input | @ |
| a.b.c | Dot path into nested objects | hq.city |
| a[0] | Array index | users[0].name |
| a[*] | Wildcard projection over an array | users[*].name |
| a[?expr] | Filter with == != > < >= <= | users[?age>25] |
| expr | expr | Pipe — chain stages | users[?age>25] | length(@) |
| length(x) | Length of array/object/string | length(users) |
| keys(x) / values(x) | Object keys or values | keys(hq) |
| reverse(x) | Reverse an array | reverse(users) |
| sort_by(x, &field) | Sort an array by a field | sort_by(users, &age) |
| sum(x) | Sum a numeric array | sum(prices) |
Query JSON without writing code
Prototype a filter or extraction query here before dropping it into your application.
Instant results
Every query runs live in your browser the moment you click Run — no server round-trip.
Filters & pipes
Combine array filtering with functions like
length() or sort_by() using the pipe operator.One-click examples
Click any example chip to see a working query run immediately against the sample data.
100% client-side
Query evaluation happens entirely in your browser. Your data is never uploaded, logged, or stored on a server.
Frequently asked questions
Is this full JMESPath or full JSONPath?
No — it's a deliberately small JMESPath-lite subset covering the syntax developers use most often: dot paths, array indexes, wildcards, filter expressions, pipes, and a handful of functions. See the cheat sheet on this page for the exact supported syntax.
How do I filter an array?
Use bracket-question syntax, e.g. users[?age>25] or users[?active==true]. Supported operators are == != > < >= <=.
Can I chain multiple operations together?
Yes, using the pipe character. For example users[?age>25] | length(@) first filters the array, then counts the results.