jq 速查表
共 36 条jq 常用用法,覆盖基础、过滤选择、数组对象、变换函数与输出技巧五组场景, 逐条给出写法与说明。支持搜索与分类筛选,点击命令即可复制。
基础
jq 的过滤器语言,点号 . 代表当前输入。
| 命令 | 说明 |
|---|---|
| 格式化 / 美化输出 JSON | |
| 压缩为单行输出 | |
| 读取字段 a 的值 | |
| 读取嵌套字段 | |
| 字段为 null 时提供默认值 | |
| 字段不存在时不报错,返回 null | |
| 从零构造 JSON(-n 不读输入) |
过滤与选择
select 用于按条件保留元素。
| 命令 | 说明 |
|---|---|
| 遍历数组,逐个输出元素 | |
| 筛选年龄大于 18 的用户 | |
| 按字段值筛选 | |
| 过滤数组,仅保留 active 为真的项 | |
| 取数组第一个 / 最后一个元素 | |
| 按长度条件筛选 |
数组与对象操作
方括号 [] 用于构造新数组。
| 命令 | 说明 |
|---|---|
| 长度:数组元素数 / 对象键数 / 字符串长度 | |
| 取数组第一个元素 | |
| 抽取某字段组成新数组 | |
| 构造只含指定字段的新对象 | |
| 列出对象的全部键 | |
| 按字段排序 | |
| 按字段分组 | |
| 数组求和 / 字符串拼接 | |
| 按字段去重 |
变换与函数
赋值与 map 可批量修改数据。
| 命令 | 说明 |
|---|---|
| 聚合求和为对象 | |
| 对象转键值对数组(from_entries 反向) | |
| 转大写(ascii_downcase 转小写) | |
| 批量给价格涨 10% | |
| 按条件过滤/保留 | |
| 仅保留数字类型元素 | |
| 批量修改所有键名 |
输出格式与技巧
开关与变量让 jq 更适配脚本。
| 命令 | 说明 |
|---|---|
| 原始字符串输出(不加引号) | |
| 把多个文件合并为一个数组 | |
| 从命令行传入字符串变量 | |
| 一次输出多个字段 | |
| 输出为 CSV 行 | |
| 组合:转键值对后筛选 | |
| 从数组或对象中移除指定项 |
使用说明
jq 是命令行处理 JSON 的利器,但过滤语法需要记。这张表覆盖基础取值、过滤选择、数组对象操作、变换函数与输出技巧。
- 在搜索框输入「筛选」「排序」「分组」「求和」等关键词定位用法。
- 点击命令复制后,把 file.json 换成自己的文件名,或用管道接在其他命令后面。
常见问题
- jq 里的 . 是什么意思?
- 点号 . 代表当前输入对象,.a 取字段 a,.[0] 取数组第一个元素,.a.b 逐级取值。
- 怎么输出不带引号的字符串?
- 加 -r 开关,如 jq -r ".name",会以原始字符串形式输出,便于脚本使用。