
jq 是一个轻量级且功能强大的命令行 JSON 处理器。它允许你以高效的方式解析、过滤、转换和格式化 JSON 数据,特别适合在 shell 脚本中处理 JSON 数据。
在大多数 Linux 发行版中,可以通过包管理器轻松安装 jq:
# Ubuntu/Debian
sudo apt-get install jq
# CentOS/RHEL
sudo yum install jq
# Fedora
sudo dnf install jq
# macOS (使用 Homebrew)
brew install jq
安装完成后,可以通过以下命令验证安装是否成功:
<code>jq --version</code>
jq 的基本命令格式如下:
<code>jq [options] [file...]</code>
| 选项 | 说明 |
|---|---|
| `-c` | 紧凑输出(不美化) |
| `-r` | 输出原始字符串(去除 JSON 引号) |
| `-s` | 将整个输入流读取到数组中 |
| `-M` | 禁用颜色输出 |
| `--arg` | 定义变量 |
| `--slurp` | 将多个 JSON 对象读入数组 |
假设我们有一个名为 data.json 的文件,内容如下:
{
"name": "John Doe",
"age": 30,
"isActive": true,
"address": {
"street": "123 Main St",
"city": "New York"
},
"hobbies": ["reading", "hiking", "coding"]
}
获取所有内容(美化输出):
<code>jq '.' data.json</code>
获取特定字段:
jq '.name' data.json
# 输出:"John Doe"
获取嵌套字段:
jq '.address.city' data.json
# 输出:"New York"
获取数组元素:
jq '.hobbies[0]' data.json
# 输出:"reading"
jq '.hobbies[1:3]' data.json
# 输出:["hiking", "coding"]
数组长度:
jq '.hobbies | length' data.json
# 输出:3
筛选满足条件的元素:
# 假设有 users.json 包含用户数组
jq '.[] | select(.age > 25)' users.json
创建新对象:
jq '{fullName: .name, city: .address.city}' data.json
# 输出:{"fullName": "John Doe", "city": "New York"}
数学运算:
jq '.age * 2' data.json
# 输出:60
<code>jq -s '.[0] + .[1]' file1.json file2.json</code>
<code>jq --arg new_city "Boston" '.address.city = $new_city' data.json</code>
<code>curl -s https://api.example.com/users | jq '.[] | {name: .name, email: .email}'</code># 将对象数组转换为 CSV 格式
jq -r '["Name", "Age"], (.[] | [.name, .age]) | @csv' users.json
# 分析 JSON 格式的日志文件
cat app.log | jq 'select(.level == "error") | {time: .timestamp, message: .msg}'
# 修改配置文件中的某个值
jq '.config.timeout = 30' config.json > temp.json && mv temp.json config.json
对于非常大的 JSON 文件,可以使用流式处理:
<code>jq -n 'inputs | select(.value > 100)' hugefile.json</code>
使用 -r 选项时,特殊字符会被转义。如果需要原样输出,可以:
<code>jq -j '.' file.json</code>
<code>jq -s 'add' file1.json file2.json</code>
jq 是处理 JSON 数据的强大工具,通过本文的学习,你应该已经掌握了:
要进一步提升 jq 技能,可以:
记住,熟练掌握 jq 可以显著提高你在命令行中处理 JSON 数据的效率!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号