JQ 命令简介
jq 是一个轻量级且灵活的命令行 JSON 处理器。它的主要特点:
- 支持复杂的 JSON 数据处理
- 强大的过滤和转换功能
- 支持管道操作
- 内置丰富的函数库
基本语法
1 | jq [选项] <过滤器> [JSON文件] |
基础用法
1. 基本过滤
1 | # 提取单个字段 |
2. 数组操作
1 | # 访问数组元素 |
3. 条件过滤
1 | # 过滤数组元素 |
高级用法
1. 数据转换
1 | # 修改字段值 |
2. 数组处理
1 | # map 操作 |
3. 复杂查询
1 | # 嵌套结构查询 |
实用示例
1. API 响应处理
1 | # 处理 REST API 响应 |
2. 配置文件处理
1 | # 修改配置值 |
3. 数据分析
1 | # 统计分组 |
高级技巧
1. 自定义函数
1 | # 定义和使用函数 |
2. 条件表达式
1 | # if-then-else |
3. 变量使用
1 | # 使用变量 |
性能优化
- 使用
-c
选项输出紧凑格式
1 | jq -c '.' data.json |
- 使用
--stream
处理大文件
1 | jq --stream '.' large.json |
调试技巧
- 使用
debug
函数
1 | echo '[1,2,3]' | jq 'debug | map(. * 2)' |
- 使用
-r
选项去除引号
1 | echo '{"name": "Tom"}' | jq -r '.name' |
注意事项
- 注意转义字符的使用
- 处理大文件时注意内存使用
- 复杂查询可能影响性能
- 注意 JSON 数据的编码问题
总结
jq 是一个强大的 JSON 处理工具,它的优势在于:
- 强大的查询语法
- 丰富的内置函数
- 灵活的数据转换能力
- 良好的命令行集成
掌握 jq 可以大大提高 JSON 数据处理效率,特别是在处理 API 响应和配置文件时。