Run real jq filters over JSON — the genuine jq engine, live, all in your browser.
. for the whole document, or something like .items | map(.name).jq is a small, powerful command-line program for slicing, filtering, mapping and transforming JSON. A jq filter takes JSON in and produces JSON out — you compose filters with the pipe |, just like a Unix shell. It is the standard tool for wrangling API responses, config files and logs. This playground runs the real jq engine (jq 1.8.2), compiled from C to WebAssembly, so every filter behaves exactly as it does on the command line.
| . | Pretty-print the whole document. |
| .user.name | Get a nested field. |
| .items[] | Iterate over an array, one result per element. |
| .items | map(.name) | Collect one field from every element into an array. |
| .items | length | Count elements. |
| [.items[] | select(.price > 10)] | Filter elements by a condition. |
| .items | group_by(.tag) | Group elements by a field. |
| [.items[].price] | add | Sum a field across elements. |
| to_entries | map(.key) | List the keys of an object. |
The toggles map to jq's real flags. raw output (-r) prints strings without quotes — handy for shell-style output. compact (-c) puts each result on one line instead of pretty-printing. slurp (-s) reads the entire input into a single array first, so you can process a stream of JSON values at once. null input (-n) runs the filter with null as input, useful for generating JSON from scratch. sort keys (-S) emits object keys in sorted order.
Yes. The jq engine is self-hosted here and runs entirely inside your browser tab as WebAssembly. Your JSON and your filters are never uploaded — there is no server round-trip and no account. Open your browser's network tab and watch: no request carries your data. That makes this safe for production payloads, tokens and other sensitive JSON, and it keeps working offline once the page has loaded.
Most web-based jq tools send your JSON to a backend to evaluate the filter. For anything sensitive that is a leak waiting to happen. Running the actual jq binary in your browser gives you identical behaviour with none of the exposure.