jq

🔧 JSON 数据的 sed 利器

命令行 JSON 处理器,像 sed 一样过滤、映射、转换 JSON 数据,支持提取、筛选、重命名、格式化等操作,是开发者处理 API 响应和配置文件的必备工具。

收藏
12.6k
安装
4.1k
版本
1.0.0
CLS 安全性认证2026-06-23
点击查看完整报告 >

使用说明

核心用法

jq 是一个轻量级命令行 JSON 处理器,采用类似 sed 的过滤器语法处理 JSON 数据流。核心操作模式为 jq '[filter]' [input.json],支持从标准输入或文件读取。

关键能力矩阵:

  • 提取: .key 访问对象字段,[0] 索引数组,[] 迭代元素
  • 过滤: select(.age > 25) 条件筛选,group_by(.category) 分组聚合
  • 变换: {new: .old} 重命名键,del(.password) 删除字段,. + {timestamp: now} 添加计算字段
  • 格式化: -r 原始输出(去除引号),-c 紧凑模式,@csv CSV 转换

典型工作流:

# API 数据提取与重构
curl api.example.com | jq '.data[] | {id, name, email}'

# 配置文件批量处理
jq '.database.host = "prod-db"' config.json

# 数据聚合统计
jq '[.items[].price] | add' sales.json

显著优点

1. 零依赖轻量化: 单二进制文件,<1MB,全平台支持
2. 管道友好: 原生适配 Unix 哲学,与 curlgrepdiff 无缝衔接

3. 表达力强大: 支持变量、函数定义、递归下降等完整编程构造

4. 输出灵活: 内置 JSON Lines、CSV、TSV、Shell 字符串等格式导出

5. 生态成熟: 2012 年发布,经过 10+ 年生产验证,文档详尽

局限性与风险

| 问题 | 说明 |
|------|------|
| 学习曲线 | 过滤器语法独特,复杂嵌套查询可读性下降 |
| 大文件处理 | 默认全量加载,GB 级 JSON 需配合 `--slurp` 策略 |
| 类型弱约束 | 缺失字段返回 `null` 而非报错,易引发静默错误 |
| 原地修改 | 无内置 `-i` 参数,需手动重定向临时文件 |
| 无 schema 验证 | 仅能校验语法,无法检验数据结构合规性 |

适合人群

  • DevOps/SRE: 处理 Kubernetes/API 返回的复杂 JSON
  • 后端开发: 日志分析、配置文件管理、测试数据构造
  • 数据工程师: 轻量级 ETL、JSON 数据探查与清洗
  • 安全研究员: 快速提取漏洞扫描器、API 响应中的关键字段

常规风险

  • 数据泄漏: jq -r '.users[].password' 等命令可能在 shell history 留存敏感字段
  • 破坏性操作: 错误过滤器导致数据截断,建议先用 | length 验证结果规模
  • 编码问题: 处理非 UTF-8 输入可能产生乱码,需前置 iconv 转换

安全解读

核心用法

jq 是专为 JSON 设计的轻量级命令行处理器,语法类似 sed,支持过滤、映射、转换和提取。基本模式为 jq '[filter]' [input.json],核心操作包括:

  • 对象访问.key 提取键值,.a.b.c 嵌套访问,// 设置默认值
  • 数组操作.[0] 取首个元素,.[] 遍历数组,select() 条件过滤
  • 数据转换:重命名字段、添加计算字段、del() 删除敏感键、flatten 展平嵌套
  • 输出格式-r 原始输出(去引号),-c 紧凑模式,支持 CSV/JSON Lines 导出

显著优点

  • 零依赖执行:作为外部工具文档引用,Skill 本身无可执行代码,100% 安全
  • 功能覆盖全面:从简单取值到复杂聚合(group_byuniqueadd)一应俱全
  • 管道友好:天然适配 curl | jq 工作流,API 数据处理的终端标配
  • 学习成本低:过滤语法直观,常见模式(提取、过滤、计数)均为单行命令

潜在局限性

  • 外部依赖:需系统预装 jq 二进制(通常需 apt/brew install jq
  • 版本差异:部分高级功能(如 gsubwalk)依赖较新版本
  • 大数据性能:单线程处理,GB 级 JSON 文件可能出现内存瓶颈
  • 调试困难:复杂过滤器报错信息 cryptic,需逐步拆解验证

适合人群

  • 后端开发者处理 API 响应和日志分析
  • DevOps/SRE 编写 Shell 自动化脚本
  • 数据工程师进行轻量级 ETL 预处理
  • 需要快速验证 JSON 结构的技术人员

常规风险

  • 命令注入:若将用户输入直接拼接到 jq 过滤器,可能导致意外执行
  • 敏感数据泄露:过滤前未清理日志中的 passwordtoken 等字段
  • 大对象内存溢出:未限制 -S 排序时的递归深度处理深层嵌套 JSON

> 本 Skill 为纯文档型(T-MD),经 CLS-Certify 六维检测获 S+ 评级,无实际安全风险。

jq 内容

手动下载zip · 1.5 kB
SKILL.mdtext/markdown
请选择文件