jq Playground

Paste JSON, write a jq filter, and see the result instantly. Runs the real jq compiled to WebAssembly, entirely in your browser.

Your JSON is processed locally by jq running as WebAssembly in your browser and is never uploaded, but avoid pasting secrets or production data into any tool.

Need a JSONPath instead of jq? Try the JSONPath Evaluator.

About jq Playground

This jq playground lets you run jq filters against JSON without installing anything. Paste a JSON document, type an expression such as .users | map(.name), .[] | select(.active), or group_by(.type), and the result appears as you type. It is the real jq 1.8.2 compiled to WebAssembly, so the same filters, functions, and pipe syntax you use on the command line work here, including map, select, sort_by, group_by, to_entries, and string interpolation. Toggle raw output (-r) to drop quotes from string results, or compact output (-c) to put each value on one line. jq compile and runtime errors are shown so you can fix a filter quickly. Because jq runs as WebAssembly inside the page, the JSON you paste is processed locally on your device and is never uploaded to a server.

Features

How to use the jq Playground

  1. Paste or type your JSON into the JSON box.
  2. Write a jq filter in the filter box, for example .users | map(.name).
  3. Watch the output update, or press Run / Cmd+Enter to evaluate immediately.
  4. Toggle raw (-r) or compact (-c) if you need different formatting.
  5. Click Copy to grab the result.

Example

Input

{
  "users": [
    { "name": "Ada", "active": true },
    { "name": "Linus", "active": false }
  ]
}

Output

[
  "Ada"
]

The filter .users | map(select(.active)) | map(.name) keeps only active users and returns their names.

Common errors & troubleshooting

Frequently asked questions

Does this run the real jq?
Yes. It runs jq compiled to WebAssembly, so it is the actual jq engine, not a JavaScript reimplementation. The filters, built-in functions, and pipe semantics match the jq you run in a terminal.
What jq version is supported?
jq 1.8.2, via the jq-wasm build. Functions and syntax available in jq 1.8 — such as group_by, to_entries, ltrimstr, and string interpolation with \(...) — work here.
What do the raw (-r) and compact (-c) toggles do?
Raw output (-r) prints string results without the surrounding quotes, matching jq's -r flag. Compact output (-c) prints each JSON value on a single line instead of pretty-printing, matching jq's -c flag.
Is my JSON uploaded anywhere?
No. jq runs as WebAssembly inside this page, so the JSON you paste and the filter you write are evaluated locally on your device and are not sent to a server.
Why is the first run a little slower?
The jq WebAssembly module is downloaded and initialized the first time you run a filter, which is why you see a brief loading state. After that it stays in memory and subsequent runs are fast.
Can I run filters with select, map, and group_by?
Yes. Expressions like .[] | select(.active), .users | map(.name), and group_by(.type) all work, along with the rest of jq's filtering, transformation, and aggregation functions.

Related tools

All ArrayKit tools