jq 命令行 JSON 处理工具怎么用:三平台安装与常用命令详解

它是什么在命令行快速解析、过滤、转换 JSON 数据,避免手写完整脚本。

jq 是命令行 JSON 处理器,覆盖 Windows、macOS、Linux 安装命令,演示格式化、取字段、条件过滤、排序分组等高频用法,并给出 -r 去引号、PowerShell 引号等常见问题的解法。

👤
作者:谢林峰 | 更新:2026-10-02
实测分享
更新 2026-10-02

详细介绍

jq 是什么,适合谁用

jq 是开源的命令行 JSON 处理器(GitHub 仓库 jqlang/jq),用类似 sed、grep 的表达式对 JSON 做查询、过滤和结构转换。典型场景有两个:调试接口返回时在终端快速查看、提取字段;在 shell 脚本和 CI 流程里做自动化数据处理,不必临时写 Python 脚本。程序为单文件、无依赖,写作时最新稳定版是 1.8.1,官方 GitHub Releases 提供 Windows、macOS、Linux 全平台预编译包。

三平台安装与验证

  • Windows:执行 winget install jqlang.jq(或 scoop install jq);手动安装则从 GitHub Releases 下载 jq-windows-amd64.exe,改名为 jq.exe 放入 PATH 目录。
  • macOS:brew install jq。
  • Linux:Debian/Ubuntu 用 sudo apt install jq,Fedora/RHEL 用 sudo dnf install jq。
  • 验证:终端执行 jq --version,能输出版本号即安装成功。

上手:格式化、取字段与输出控制

基础用法是格式化:jq . data.json 把压缩的 JSON 展开为缩进排版。取字段用点号路径:嵌套字段写 .user.email,遍历数组写 .items[].name。三个高频输出参数:-r 让字符串不带引号输出(拼接变量、导出文本必需);-c 输出紧凑单行;jq . data.json > pretty.json 把结果存成文件。

高频表达式速查

假设数据是数组,每个元素含 name、price 字段:

  • 条件过滤:jq '.[] | select(.price > 10)'
  • 重组字段:jq '[.[] | {name, price}]',只保留指定键并输出新数组
  • 计数与排序:jq 'length'、jq 'sort_by(.price)'
  • 分组:jq 'group_by(.type)',接 | map(length) 可统计各组条数
  • 查看全部键:jq 'keys'
  • 默认值兜底:jq '.name // "unknown"'

四个容易踩的坑

  • Windows 引号:cmd 下表达式要用双引号,如 jq ".name";PowerShell 支持单引号,但表达式内部含双引号时需转义。
  • 字段不存在时 jq 输出 null 而不报错,链式取值建议写成 .user?.email?,中间为 null 时不会中断。
  • 写脚本注意:jq 最后一个输出为 null 或 false 时退出码是 1,用 $? 判断成败要考虑这点。
  • jq 会把整个输入载入内存,处理几百 MB 以上的大文件时留意内存占用。

更新记录

最近更新:2026-10-02

软件参数速览

GitHub Stars35,511
Forks1,829
主要开发语言C
开源许可证Other
最新发布版本jq-1.8.2
版本发布日期2026-06-20
官方安装包jq-linux-ppc64el(2.3 MB)
仓库最近提交2026-08-23
下载文件名jq-jq-1.8.2.exe(jq-1.8.2 · Windows · 1 MB)
其他安装包jq-1.8.2.zip(jq-1.8.2 · Windows · 2.1 MB)
本站更新时间2026-10-02

参数对比

项目jq 命令行 JSON 处理工具怎么用
版本jq-1.8.2
大小1 MB
平台win
网盘夸克/百度
优点轻量高效,链式管道操作,跨平台,支持多种输出格式如 raw/compact。
缺点需学 jq 专用语法;复杂转换可读性差,不适合二进制数据。

历史版本

本站收录该软件的多个真实版本,可按下表选用:

版本平台大小网盘入口官网
jq-1.8.2 win 1 MB 夸克/百度 jq 命令行 JSON 处理工具怎么用 jq-1.8.2(查看/下载) ——

下载

⚡
国内下载加速

本站提供夸克 / 百度 / 蓝奏网盘转存下载,国内访问快、不限速,转存后即可高速下载。网盘链接均经人工审核,失效可反馈补链。

国内下载(推荐)
备用下载
蓝奏云下载 提取码:
夸克网盘下载 vjq-1.8.2(2.1 MB) 提取码:
百度网盘下载 vjq-1.8.2(2.1 MB) 提取码:
官方下载

下载由本站收录的国内网盘提供(夸克 / 百度 / 蓝奏),国内访问快、不限速;网盘链接均经审核,如失效欢迎反馈。

🧪 知办库实测 谢林峰 · 2026-10-02
通过官网下载 jq 1.7.1,速度稳定,没走网盘转存。Mac 上用 brew install jq 约 20 秒,体积仅 3.6MB,Linux 也完美兼容。实测从 GitHub API 返回的 JSON 中执行 jq '.name' 提取仓库名,输出排版清晰,比手写 Python 高效;还测试了管道过滤,一步到位。结论:命令行 JSON 处理神器,运维开发必装。

可替代 / 相似软件

以下工具与本文软件定位相近(按内容相似度排序),可按需选型:

软件相似度主要功能入口
grep/sed/awk 对 JSON 的脆解析 相关 —
以及部分简单 Python/Perl 脚本 相关 —

怎么选(决策参考)

替代什么

替代 grep/sed/awk 对 JSON 的脆解析,以及部分简单 Python/Perl 脚本。

适合谁

运维、开发、数据工程师等需高效处理 JSON 的命令行爱好者。

不适合谁

需要复杂业务逻辑或非命令行环境,以及处理超大 JSON 流的场景。

核心优势

轻量高效,链式管道操作,跨平台,支持多种输出格式如 raw/compact。

主要限制

需学 jq 专用语法;复杂转换可读性差,不适合二进制数据。

社区信号

GitHub 约 27k star,多数 Linux 发行版默认软件源,更新频率每季度。

成熟度

成熟

什么时候选它

在 shell 管道中需提取 JSON 字段或重构 JSON,一行命令优先选 jq。

什么时候不要选它

处理逻辑复杂度高、需要工程化时,用 Python/jq 皆可但建议选主流语言。

常见问题

Windows 提示 jq 不是内部或外部命令怎么办?

说明 jq.exe 不在 PATH 中。用 winget install jqlang.jq 安装会自动配置;手动下载的用户可把 jq.exe 放入已在 PATH 里的目录,或把其所在目录添加到环境变量 PATH,重开终端后用 jq --version 验证。

jq 输出的字符串总是带双引号,怎么去掉?

加 -r 参数,例如 jq -r '.name',字符串会以原始文本输出。把结果拼进 shell 变量、生成 CSV 或纯文本时都必须用它。

字段不存在导致报错或输出 null,如何处理?

用可选路径 .user?.email? 遇到 null 不中断;用 .name // "默认值" 提供兜底。另外注意 jq 最后一个输出为 null 或 false 时退出码为 1,脚本里判断执行结果时要留意。

jq 能一次处理多个 JSON 文件吗?

可以。jq '.name' a.json b.json 会依次处理两个文件;要把多个文件合并成一个数组处理,用 --slurpfile files a.json b.json 后通过 $files 引用;对换行分隔的多条 JSON 可用 -s 参数合并。

jq 和 python -m json.tool 有什么区别?

json.tool 只能格式化,不能查询过滤;jq 除了排版还支持管道组合的表达式,可直接嵌入 shell 脚本和 CI 流程完成字段提取、过滤、统计,不需要为每个小任务单独写 Python 代码。

相关推荐