jq 是轻量灵活的命令行 JSON 处理器,本技能提供用 jq 查询、过滤、转换 JSON 的专家级用法。适用场景:提取或过滤 JSON 字段、解析 gh、curl、kubectl -o json 的响应、在最小镜像的 CI 流水线中处理 JSON(jq 普遍已安装)、以及适合单条表达式的管道式一次性转换;处理 YAML 文件、原地编辑保留注释的 YAML、需要跨 JSON/YAML/CSV/TOML 的多步转换或聚合与可视化表格探索时,应分别改用 yq-yaml-processing 或 nushell-data-processing。
主要能力:用路径表达式查询和过滤、重塑与合并拆分 JSON、校验 JSON 语法与结构;提取字段、按条件过滤数组、遍历嵌套结构、处理 null 与缺失键。常用命令包括 pretty-print:jq '.' file.json;提取字段:jq '.user.email' file.json;数组长度与映射:jq '.items | length'、jq '.items | map(.name)';过滤:jq '.items[] | select(.active == true)';排序与去重:sort_by(.name)、reverse、unique;对象操作:keys、values、{name, email}、del(.password)、. * {updated: true};条件组合 and/or、has("email")、!= null;字符串插值 "Hello, (.name)"、tostring、contains、startswith、endswith、split、join、ascii_downcase/upcase;管道组合与 group_by;输出格式 -c 紧凑、-r 原始字符串、@tsv、@csv;输入输出 -s slurp 多文件、重定向写文件、配合 sponge 原地编辑。
进阶用法包括递归下降 .. | .email? // empty、reduce 累加、变量赋值 as $item、if-then-else、try-catch、flatten。可与 curl、gh、find、xargs、yq 组合。
安装:macOS 用 brew install jq;Ubuntu/Debian 用 sudo apt-get install jq;用 jq --version 验证。
限制与排错:用 jq empty file.json 校验 JSON、用 keys/type/.. | scalars 调试空结果、用 type 与 tonumber/tostring 处理类型错误、用 --stream 处理大文件。性能上应尽早 select()、使用具体路径、必要时用 -c。关于收费、价格与平台支持范围等信息暂未提供。