jq 快速入门:3 步装好它,1 条命令跑通 JSON 处理
【免费下载链接】jqCommand-line JSON processor项目地址: https://gitcode.com/GitHub_Trending/jq/jq
晚上十点,接口同事甩来一个 2000 行的 JSON 日志,让你"顺便看下第几个字段"。用文本编辑器逐行翻?正则一写就头大?这时候你需要 jq——一个专为命令行 JSON 处理而生的工具,装好后一条命令就能把想要的字段挖出来。
🎯 先弄懂它:jq 到底是干嘛的
一句话定位:jq 是终端里的 JSON "抽卡机",你把整包数据丢给它,它按你给的"咒语"(filter)只吐出你要的那一张。
核心价值就两点:
- 不用写代码:提取字段、过滤记录、求和取平均,都是一句短语级别的操作,没有 import 那些事。
- 跨平台一致:Windows、Linux、macOS 上语法完全一样,在服务器上学的招式,回到自己电脑照用。
官方手册里对它的定义也很直白:a command-line JSON processor(命令行 JSON 处理器),详见仓库文档 docs/content/manual/。
📦 三步装好它:Windows / Linux / macOS 最快路径
每个系统其实就两步:装、验证。
Windows
装了包管理器的话一行搞定,二选一:
choco install jqscoop install jq没有包管理器的话,去 jq 官网下载 Windows 压缩包,解压后把可执行文件放进 PATH 目录即可。
Linux
# Ubuntu / Debian sudo apt update && sudo apt install jq # CentOS / RHEL sudo yum install jqmacOS
brew install jq想体验从源码编译?仓库里备好了完整构建脚本,configure.ac 和 Makefile.am 就是入口,普通用户用包管理器足矣。
🏁 跑通第一条命令:30 秒确认装成功了
打开终端,先问它"你谁":
jq --version预期输出长这样:
jq-1.8.1版本号能蹦出来,说明安装没问题。再来一发功能自检:
echo '{"name": "小试牛刀", "value": 100}' | jq '.name'屏幕上应该出现:
"小试牛刀"恭喜,你已经完成了人生第一条 jq 查询。
🪄 三个拿来就能用的招式
招式一:只取你要的字段
接口返回一大坨,只要 username?
jq '.username' response.json效果:整包数据瞬间瘦身成一个字段,眼睛不再被无关信息糊。
招式二:按条件筛记录
手头是一堆订单,只要金额大于 500 的:
echo '[{"id":1,"amount":300},{"id":2,"amount":800}]' | jq '.[] | select(.amount > 500)'效果:只留下{"id":2,"amount":800},过滤条件直接写在管道里,比写脚本轻得多。
招式三:一行算总和
一堆数字,快速求和/求平均:
echo '[100, 250, 350]' | jq 'add'效果:直接输出700。把add换成length、max还能秒出个数和最大值。
更多实战套路可以翻仓库的测试目录 tests/jq.test,里面藏着大量真实语法的用例。
🕳️ 新手最容易翻车的三个坑
坑一:parse error满屏飘
多半是 JSON 本身不规范:多了尾逗号、用了单引号。一行解法:先用jq '.' file.json格式化一遍,报错位置直接指给你看。
坑二:command not found: jq
包管理器明明装成功了。通常是 PATH 没生效,重启一下终端;Windows 用户尤其常见,重开 PowerShell 基本就好。
坑三:输出只有null或什么都没有
查询路径写错了,jq 不会骂你,只会安静地给你个 null。先跑jq 'keys' file.json看看对象里到底有哪些键名,对号入座再查。
🧭 接下来往哪走
三个方向,挑一个扎进去:
- 啃官方手册:docs/content/manual/manual.yml 是全量语法参考,配合历史版本 docs/content/manual/v1.8/ 对照看。
- 学会组合 filter:掌握
map、select、管道|三板斧,80% 的 JSON 操作都覆盖到了。 - 看真实用例练手:tests/ 目录下的
.jq测试文件就是一份免费的习题集,照着敲一遍就有肌肉记忆。
现在就打开终端,把你最近遇到的那个大 JSON 丢给 jq 试试——第一条命令下去,那种"数据随取随用"的感觉,用一次就回不去了。
【免费下载链接】jqCommand-line JSON processor项目地址: https://gitcode.com/GitHub_Trending/jq/jq
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考