ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 jq 快速提取 JSON 字段:三平台安装与上手实战笔记

如何用 jq 快速提取 JSON 字段:三平台安装与上手实战笔记 如何用 jq 快速提取 JSON 字段三平台安装与上手实战笔记【免费下载链接】jqCommand-line JSON processor项目地址: https://gitcode.com/GitHub_Trending/jq/jq凌晨排查 API返回的 JSON 长到没法在浏览器里翻。装一个 jq你要的字段一行命令就能拉出来不用再复制粘贴。一句话看懂 jq 是什么jq 是命令行 JSON 处理器纯 C 编写零运行时依赖装完几 MB 就能用。如果 sed 是把文本当一维切jq 是把结构当树来走——你不妨把它想象成滤网原始数据从管道灌进来留你想留的滤掉剩下的。三行命令装好 jqbrew install jq # macOS sudo apt install jq # Debian / Ubuntu scoop install jq # Windows装完敲一下jq --version能打出版本号就算就位。RHEL / CentOS 换dnf install jqWindows 上choco install jq也可以。需要定制功能就走源码git clone https://gitcode.com/GitHub_Trending/jq/jq然后依次执行autoreconf -i、./configure --with-onigurumabuiltin、make install。提取字段把想要的键拉出来最高频的需求就是它从一份返回 JSON 里拉出一个键。echo {order_id:8827,paid:true,amount:129.9} | jq .order_id预期输出8827点号加字段名就是 jq 的全部寻址语法没有更复杂。键里带空格或横杠时用引号包住写成.[order id]数字、布尔值原样输出不会被自动加引号。用 jq 过滤数组只留满足条件的记录想从数组里只留“数量大于等于 4”的记录一行就够echo [{sku:A1,qty:2},{sku:B7,qty:5}] | jq .[] | select(.qty 4)预期输出{sku:B7,qty:5}.[]负责把数组元素逐个拿出来select只保留满足条件的。这个写法拿去过滤日志、筛活跃订单直接能复用把换成就是反选。钻取嵌套数据并顺手做一步聚合字段套三四层深时用路径直接钻进去echo {orders:[{total:120},{total:36.5}]} | jq [.orders[].total] | add预期输出156.5先[.orders[].total]把所有金额拉成一个数组再add求和。把add换成max就是最大金额换成length就是条数先别急着写脚本一行通常就够。批量转换把结果交给别的工具jq 最舒服的位置在管道中间比如用它拼一个健康检查 URLecho {host:10.0.0.5,port:8080} | jq -r http://\(.host):\(.port)/health预期输出http://10.0.0.5:8080/health-r去掉字符串结果的引号\()是字符串插值。结果可以直接接给curl、grep甚至xargs等于省掉一层小脚本。大家都会翻的五个坑引号问题PowerShell 里 jq 过滤表达式用单引号包起来双引号会让\(.host)先被 shell 吃掉。忘了-r字符串结果永远带一对引号接别的工具时对不上。报parse error先怀疑文件带 BOM 或开头有杂文本head -c 100看一眼就清楚。内存问题jq 一次性读完整文件几 GB 的日志会把它撑爆先用head、grep切小再进 jq。版本差异部分新内置函数只在 jq 1.7 存在unknown function时先查jq --version。往深里走的两个入口内置函数一览src/builtin.jq一个函数一行十分钟能扫完。真实用例tests/jq.test 里是成百上千组输入输出对拿不准某个写法先来这里搜。下一步建议把src/builtin.jq过一遍记下自己不熟的函数再到tests/jq.test里对照你的业务找现成例子。jq 练熟的路径不是背语法是攒下这些惯用法。【免费下载链接】jqCommand-line JSON processor项目地址: https://gitcode.com/GitHub_Trending/jq/jq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表