折腾侠
工具推荐

jq 命令行工具:JSON 处理神器

jq 是命令行 JSON 处理神器,被称为"JSON 的 sed/awk"。本文介绍 jq 的安装方法、核心功能、实用示例和适用场景。无论是调试 API、处理 kubectl 输出,还是解析配置文件,jq 都能让你事半功倍。

折腾侠
2026/03/24 发布
15约 2 分钟318 字 / 201 词00

🔧 jq 命令行工具:JSON 处理神器

工具简介

jq 是一个轻量级、命令行 JSON 处理器,被称为"JSON 的 sed/awk"。它能让你像操作文本一样轻松解析、过滤、转换 JSON 数据。

核心功能

  • 解析格式化:美化缩进或压缩 JSON
  • 字段提取:精准获取嵌套数据
  • 数据过滤:按条件筛选数组元素
  • 格式转换:JSON ↔ CSV/TSV 互转
  • 链式操作:管道组合多个处理步骤

安装方法

Bash
# macOS
brew install jq

# Ubuntu/Debian
sudo apt-get install jq

# CentOS/RHEL
sudo yum install jq

# Windows (Chocolatey)
choco install jq

使用示例

Bash
# 1. 格式化 JSON
curl -s https://api.github.com/repos/openclaw/openclaw | jq .

# 2. 提取特定字段
curl -s https://api.github.com/repos/openclaw/openclaw | jq ".stargazers_count"

# 3. 过滤数组(找出 star>100 的仓库)
curl -s https://api.github.com/users/openclaw/repos | jq "[.[] | select(.stargazers_count > 100)]"

# 4. 嵌套数据提取
kubectl get pods -o json | jq ".items[].metadata.name"

# 5. 组合操作(统计各语言仓库数)
curl -s https://api.github.com/users/openclaw/repos | jq "group_by(.language) | map({language: .[0].language, count: length})"

适用场景

  • ✅ 调试 API 响应,快速查看返回数据
  • ✅ 处理 kubectl/Docker 等工具的 JSON 输出
  • ✅ 脚本中解析配置文件(package.json、tsconfig.json)
  • ✅ CI/CD 流水线中提取版本号和构建信息
  • ✅ 日志分析(结构化 JSON 日志)

替代方案

工具特点适用场景
INLINE_CODE_0支持更复杂的查询表达式需要复杂条件过滤
INLINE_CODE_1Python 内置,无需安装简单格式化
jmespath交互式 JSON 查看器探索性分析
python -m json.toolYAML 版本的 jq处理 YAML 文件

学习资源


一句话总结:jq 是每个开发者都应该掌握的瑞士军刀,5 分钟学习,终身受益。

分享到:

如果这篇文章对你有帮助,欢迎请作者喝杯咖啡 ☕

加载评论中...