Query and transform JSON data with jq syntax in real-time. Test jq filters, map arrays, select objects, and debug complex JSON queries — all in your browser with no installation required. Includes built-in examples and a complete jq operations reference.
JQ Expression
$
JSON Input
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Result
Enter JSON and a jq expression to see results
Supported jq Operations
Data Access
.field- Field access.[n]- Array index.[]- Iterate array/object.[n:m]- Array slice.a.b- Nested field access
Array Operations
map()- Transform each itemselect()- Filter by conditionsort / sort_by()- Sort arrayfirst / last- Get first/last itemflatten- Flatten nested arrays
Aggregation
length- Get lengthadd- Sum/concatenatemin / max- Find min/maxunique- Remove duplicatesgroup_by()- Group by field
Object & Type
keys / values- Get keys/valuestype- Get data typeto_entries- Object to entrieshas() / contains()- Check existencedel()- Delete field
Why use our JQ Playground?
Test and debug jq expressions in real-time without installing anything. Paste your JSON, write a filter, and see results instantly. Our playground supports field access, array operations, map, select, sort_by, group_by, and more — with built-in examples and a cheat sheet to help you learn jq syntax faster. All processing runs locally in your browser, so your data stays private.
Frequently Asked Questions
What is jq and what is it used for?
jq is a lightweight command-line JSON processor, often described as "sed for JSON." It's used to parse, filter, map, and transform JSON data. Developers use jq for processing API responses, filtering log files, transforming data structures, and extracting specific values from complex nested JSON. Our online JQ Playground lets you test jq expressions without installing anything.
How do I filter JSON arrays with jq?
Use the select() function to filter array elements. For example, .users | select(.age > 25) returns users older than 25. You can combine multiple conditions: .items | select(.price > 10 and .active == true). Use map(select(...)) when you need the output as an array.
Is this jq playground free to use?
Yes, this JQ Playground is completely free with no usage limits. All processing happens in your browser — your JSON data is never sent to any server. There's no account required, no ads, and no restrictions on the size of JSON you can process.
How do I pipe multiple jq operations together?
Use the pipe character (|) to chain operations sequentially. For example: .users | select(.active) | map(.name) first gets the users array, then filters to active users only, then extracts just the name field from each. Each pipe passes its output as input to the next operation.
What is the difference between jq and JSONPath?
JSONPath is a query language for selecting nodes from JSON (similar to XPath for XML). jq is a full programming language that can select, transform, aggregate, and construct new JSON structures. jq supports pipes, functions, conditionals, variables, and reduce operations — making it much more powerful for data processing than JSONPath's selection-only approach.