jq JSON Processor
Process, filter, and transform JSON data with jq.
Quick Examples
Basic filtering
CODEBLOCK0
Working with arrays
CODEBLOCK1
Common operations
CODEBLOCK2
Advanced filtering
CODEBLOCK3
Working with files
CODEBLOCK4
Common Use Cases
Extract specific fields from API response:
CODEBLOCK5
Convert CSV-like data:
CODEBLOCK6
Debug API responses:
CODEBLOCK7
Tips
- - Use
-r for raw string output (removes quotes) - Use
-c for compact output (single line) - Use
-S to sort object keys - Use
--arg name value to pass variables - Pipe multiple jq operations: INLINECODE4
Documentation
Full manual: https://jqlang.github.io/jq/manual/
Interactive tutorial: https://jqplay.org/
jq JSON 处理器
使用 jq 处理、过滤和转换 JSON 数据。
快速示例
基础过滤
bash
提取字段
echo {name:Alice,age:30} | jq .name
输出: Alice
多个字段
echo {name:Alice,age:30} | jq {name: .name, age: .age}
数组索引
echo [1,2,3,4,5] | jq .[2]
输出: 3
处理数组
bash
遍历数组
echo [{name:Alice},{name:Bob}] | jq .[].name
输出: Alice Bob
过滤数组
echo [1,2,3,4,5] | jq map(select(. > 2))
输出: [3,4,5]
长度
echo [1,2,3] | jq length
输出: 3
常用操作
bash
美化输出 JSON
cat file.json | jq .
紧凑输出
cat file.json | jq -c .
原始输出(无引号)
echo {name:Alice} | jq -r .name
输出: Alice
排序键
echo {z:1,a:2} | jq -S .
高级过滤
bash
条件选择
jq [.[] | select(.age > 25)] people.json
分组
jq group_by(.category) items.json
归约
echo [1,2,3,4,5] | jq reduce .[] as $item (0; . + $item)
输出: 15
处理文件
bash
从文件读取
jq .users[0].name users.json
多个文件
jq -s .[0] * .[1] file1.json file2.json
修改并保存
jq .version = 2.0 package.json > package.json.tmp && mv package.json.tmp package.json
常见用例
从 API 响应中提取特定字段:
bash
curl -s https://api.github.com/users/octocat | jq {name: .name, repos: .public_repos, followers: .followers}
转换类似 CSV 的数据:
bash
jq -r .[] | [.name, .email, .age] | @csv users.json
调试 API 响应:
bash
curl -s https://api.example.com/data | jq .
提示
- - 使用 -r 获取原始字符串输出(去除引号)
- 使用 -c 获取紧凑输出(单行)
- 使用 -S 对对象键进行排序
- 使用 --arg name value 传递变量
- 管道连接多个 jq 操作:jq .a | jq .b
文档
完整手册:https://jqlang.github.io/jq/manual/
交互式教程:https://jqplay.org/