jqlang/jq
一款轻量的命令行 JSON 处理工具,用可移植 C 编写,无运行时依赖,可对 JSON 数据进行切片、过滤、映射和转换。
- Star
- 36,047
- Fork
- 3,067
- 未关闭 Issue
- 419
- 最近提交
- 5天前
这是什么?
jq 的作用类似于处理 JSON 数据的 sed、awk 或 grep。你可以把 JSON 通过管道输入,用过滤表达式选取字段、重组对象或计算新值,结果输出到标准输出。
它使用可移植的 C 语言编写,没有运行时依赖,可以作为单个独立可执行文件安装。发布页提供 macOS 和 Linux 的预编译二进制文件,也提供 Docker 镜像。从源码构建需要 libtool、make、automake 和 autoconf,同时支持静态链接与交叉编译。
项目还提供在线试用环境 play.jqlang.org,可以在放入脚本之前先测试过滤表达式。
核心功能
- 01通过过滤表达式语言对 JSON 进行选择、过滤、映射和转换。
- 02以独立可执行文件运行,无运行时依赖。
- 03使用可移植 C 编写,支持静态构建与交叉编译。
- 04提供 macOS 和 Linux 预编译二进制文件及 Docker 镜像。
- 05提供在线试用环境,便于测试过滤表达式。
适用场景
- 在 shell 脚本中从 package.json 等文件里提取版本号等字段。
- 在存储或展示前,把 API 响应重组为另一种结构。
- 在命令行中过滤大型 JSON 日志或导出数据。
- 在 Docker 或 CI 流水线中执行 JSON 转换,无需安装额外运行时。
快速上手
- 1
从发布页面下载预编译二进制文件
- 2
将下载的文件重命名为 jq 后设为可执行
chmod +x jq - 3
或者使用 Docker 处理 package.json 文件
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
收录于专题
标签
常见问题
- jq 是什么?
- 一款轻量的命令行 JSON 处理工具,用可移植 C 编写,无运行时依赖,可对 JSON 数据进行切片、过滤、映射和转换。 jq 的作用类似于处理 JSON 数据的 sed、awk 或 grep。你可以把 JSON 通过管道输入,用过滤表达式选取字段、重组对象或计算新值,结果输出到标准输出。
- jq 可以免费使用吗?用的什么许可证?
- jq 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- jq 还在维护吗?
- 活跃维护中。jq 最近一次提交是在 2026年11月2日。
- jq 适合用来做什么?
- 在 shell 脚本中从 package.json 等文件里提取版本号等字段。 在存储或展示前,把 API 响应重组为另一种结构。 在命令行中过滤大型 JSON 日志或导出数据。 在 Docker 或 CI 流水线中执行 JSON 转换,无需安装额外运行时。
- jq 怎么安装和运行?
- 从发布页面下载预编译二进制文件 将下载的文件重命名为 jq 后设为可执行: chmod +x jq 或者使用 Docker 处理 package.json 文件: docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
- 在哪里获取 jq?
- 源代码和安装说明在 GitHub 上:https://github.com/jqlang/jq
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
类似 jq 的命令行工具与查询语言,用于查看和查询二进制文件格式,内置多种格式解码器。
1.1万+4 本周257GoOther更新于 前天
用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。
2.4万+6 本周1858GoMIT维护活跃更新于 4天前
一款终端 JSON 查看与处理工具,可在命令行中交互式浏览、折叠和转换 JSON。
2.1万+7 本周501GoMIT维护活跃更新于 16天前