jq 是一个命令行 JSON 处理器,主要用于提取、过滤和转换 JSON 数据。
用途 jq 面向需要在命令行或脚本中处理 JSON 的场景,可以对 JSON 文件或标准输入中的数据进行查询、筛选和结构变换。
主要能力 根据提供的快速参考,jq 支持以下操作:
- 访问字段:.key 获取键值,.a.b.c 进行嵌套访问。
- 数组操作:.[0] 取第一个元素,.[] 遍历数组。
- 过滤:.[] | select(.x > 5) 按条件筛选。
- 重塑结构:{a: .x, b: .y} 构造新对象。
- 增删字段:. + {new: "val"} 添加字段,del(.key) 删除字段。
- 统计与聚合:length 计数,[.[] | .x] | add 求和,keys 列出键,unique 对数组去重,group_by(.x) 分组。
使用方式 基本调用形式为: jq '[filter]' [file.json] 或通过管道输入: cat file.json | jq '[filter]'
常用标志:
- -r:原始输出(不带引号)
- -c:紧凑输出
- -s:将输入合并为数组
- -S:对键排序
示例:
- jq '.users[].email' data.json:提取邮箱
- jq -r '.name // "default"' data.json:带默认值回退
- jq '.[] | select(.active)' data.json:筛选 active 项
- jq -s 'add' *.json:合并多个文件
- jq '.' file.json:美化输出
安装 macOS / Linux(Homebrew): brew install jq
所有平台:可参考 jqlang.org/download 获取软件包、二进制文件与构建说明。
适用场景 适合在命令行中快速查看、筛选和转换 JSON 数据,也适合在脚本中批量处理 JSON 文件、合并多个 JSON 文件或提取特定字段。
限制 资料未提供关于性能上限、支持的最大数据规模、版本兼容性、错误处理细节或平台特定限制的说明,暂未提供。