1 min read

Transform JSON on the command line with jq


jq recipes

Select specific fields:

jq_select.sh
cat data.json | jq '.[] | {name: .name, status: .status}'

Filter by value:

jq_filter.sh
cat data.json | jq '[.[] | select(.status == "active")]'

Count items:

jq_count.sh
cat data.json | jq '. | length'

Flatten nested arrays:

jq_flatten.sh
cat data.json | jq '[.[] | .tags[]] | unique'

Convert to CSV:

jq_csv.sh
cat data.json | jq -r '.[] | [.name, .email] | @csv'