jq Playground — Online jq Filter Tester (WASM) Run jq filters against JSON in your browser
100% offline
jq
JSON174 chars
Output
Write a jq filter and press Run. The jq engine runs locally in your browser.
The real jq runs in your browser via WebAssembly — your JSON and filters never leave your device.

About jq Playground — Online jq Filter Tester (WASM)

Test jq filters without leaving your browser. This jq playground runs the real jq engine — the same C program you use on the command line — compiled to WebAssembly, so the results match jq exactly. Paste some JSON, type a filter, and press Run to see the output instantly.

jq is the standard tool for slicing, filtering, mapping, and transforming JSON, but its syntax is easy to get wrong. Iterating here is far faster than re-running `jq` in a terminal: tweak the filter, run again, and build up a complex pipeline one step at a time.

Everything happens locally. Your JSON and your filters are never uploaded, which makes this safe for API responses, logs, and other sensitive payloads.

Features

  • The real jq engine (via jq-web / WebAssembly) — output matches command-line jq
  • Live filter bar with Cmd/Ctrl+Enter to run, plus a compact (-c) output toggle
  • Clear error messages for both invalid JSON and invalid jq filters
  • Fully offline and private — JSON and filters never leave your browser

How to use

  1. Paste your JSON into the input pane.
  2. Type a jq filter — for example .users[] | select(.active) | .name
  3. Press Run (or Cmd/Ctrl+Enter) and read the output; copy it when it looks right.

Frequently asked questions

Is this the real jq?

Yes. It runs jq compiled to WebAssembly (jq-web), so filters behave exactly as they do with the jq command-line tool, including pipes, select(), map(), reduce(), string interpolation, and built-in functions.

What does the Compact toggle do?

It adds the -c flag, which prints each JSON result on a single line instead of pretty-printing. This is handy when you want output you can pipe or paste elsewhere.

Does my JSON get uploaded?

No. The jq engine runs entirely in your browser through WebAssembly, so your JSON and filters stay on your device. The tool works offline and is safe for confidential data.

How do I get a field with jq?

Use a dot path: .name returns the top-level name field, .user.email drills into nested objects, and .items[0] indexes an array. To pull one field from every element of an array, iterate with .items[] | .name. Combine filters with the pipe (|) to build up a transformation step by step.

Why is the first run slightly slower?

The WebAssembly jq engine downloads once the first time you press Run, then it is cached for the rest of your session and every later run is instant.

Everything runs locally in your browser — your input is never uploaded.