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
Ready
Try an example
Supported syntax
SyntaxDescriptionExample
@Identity — the whole input@
a.b.cDot path into nested objectshq.city
a[0]Array indexusers[0].name
a[*]Wildcard projection over an arrayusers[*].name
a[?expr]Filter with == != > < >= <=users[?age>25]
expr | exprPipe — chain stagesusers[?age>25] | length(@)
length(x)Length of array/object/stringlength(users)
keys(x) / values(x)Object keys or valueskeys(hq)
reverse(x)Reverse an arrayreverse(users)
sort_by(x, &field)Sort an array by a fieldsort_by(users, &age)
sum(x)Sum a numeric arraysum(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.

More JSON tools