Query & transform JSON with JSONata

Type a JSONata expression and a JSON document — see the queried, filtered, or reshaped result instantly. Runs entirely in your browser, no upload, no sign-up.

Result

Query and transform JSON with JSONata

Paste a JSON document, type a JSONata expression, and see the result instantly. Everything runs locally in your browser with a pure-Rust JSONata engine — your data is never uploaded to a server.

JSONata is a lightweight query and transformation language for JSON: navigate paths, filter with predicates, aggregate with built-in functions, and build any output structure you like.

Examples

Notes

FAQ

My expression returns null — did something go wrong?

Not necessarily. In JSONata a path that matches nothing yields undefined, which this tool normalizes to JSON null. The usual culprits are a case mismatch in a key name or querying an object where an array was expected. Genuine problems — a syntax error in the expression or invalid JSON input — are reported as errors, not null.

Which JSONata functions can I use?

The engine covers the standard library you'd expect: aggregation ($sum, $count, $max, $average), strings ($uppercase, $substring, $split, $join), numbers ($round, $floor, $abs), higher-order functions ($map, $filter, $reduce, $sort with a comparator), plus predicates, wildcards, and object/array construction for reshaping output.

Can a runaway expression hang the page?

No — evaluation is guarded by a recursion-depth cap of 1024 and a roughly one-second evaluation budget, so an accidentally infinite recursive function ends with an error instead of freezing the tab.

Is this the same engine as jsonata.org?

It implements the same language, but it's a pure-Rust engine compiled to WebAssembly rather than the reference JavaScript library — that's what lets your data stay in the browser. Results agree for standard expressions; cosmetic details like object key order follow this engine's serializer.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool jsonata-query '$sum(items.price)' 'json={ "items": [ { "price": 2 }, { "price": 3 } ] }'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/jsonata-query/?query=%24sum%28items.price%29&json=%7B%20%22items%22%3A%20%5B%20%7B%20%22price%22%3A%202%20%7D%2C%20%7B%20%22price%22%3A%203%20%7D%20%5D%20%7D&pretty=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.