jq 常用 JSON 处理速查

常用命令

jq '.' data.json
jq '.name' data.json
jq '.items[0].id' data.json
jq '.items[] | .name' data.json
jq '.[] | select(.status == "ok")' data.json
jq '[.items[] | {id, name}]' data.json
jq 'map(.price) | add' data.json
jq 'sort_by(.createdAt) | reverse' data.json
jq 'group_by(.type) | map({type: .[0].type, count: length})' data.json
jq 'keys' data.json
jq -r '.name' data.json
jq -c '.items[]' data.json
jq -s 'add' a.json b.json

常用表达式

表达式 含义
. 原样输出
.foo 取字段
.[0] / .[] 索引/遍历
select() 过滤
map() 映射
sort_by() 排序
group_by() 分组
keys 键列表
length 长度
add 求和/拼接
// 默认值

场景速查

目的 写法
提取字段为 CSV `jq -r '.items[]
统计数量 `jq '.items
按字段求和 `jq '[.items[].amount]
合并对象 jq -s '.[0] * .[1]' a.json b.json
读取环境变量 jq --arg v "$VALUE" '.key = $v'
处理 NDJSON jq -c '.id' data.ndjson

易错点

相关命令