首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jq 命令常见用法及小发现

jq 命令常见用法及小发现

作者头像
程序熵
发布2025-07-30 14:07:56
发布2025-07-30 14:07:56
2920
举报
文章被收录于专栏:技术汇技术汇

jq 命令常见用法及小发现

jq 是一个命令行工具,用于处理 JSON 数据。它允许你用命令行解析、过滤、映射和转换 JSON 结构。 以下是 jq 的一些常见用法及示例:

1.基础使用:最简单的用法是直接传递一个表达式给 jq,以从JSON数据中提取信息。 •示例:如果你有一个名为 data.json 的文件包含 { "name": "John", "age": 30 },你可以使用 cat data.json | jq '.name' 来获取 "John"。 2.访问嵌套对象:可以通过点符号访问嵌套的JSON对象。 •示例:对于JSON数据 { "person": { "name": "John", "age": 30 }},可以使用 .person.name 来获取 "John"echo '{ "person": { "name": "John", "age": 30 }}' | jq '.person.age' 3.数组操作:可以使用索引或特定的数组函数来操作JSON数组。 •示例:对于JSON数据 [{"name":"John"},{"name":"Jane"}],使用 .[] .name 可以分别获取 "John""Jane"echo '[{"name":"John"},{"name":"Jane"}]' | jq '.[0] .name' 4.过滤与条件选择:使用条件表达式来筛选数据。 •示例:假设你有JSON数据 [{"name":"John","age":30},{"name":"Jane","age":25}],你可以通过 .[] | select(.age > 28) 获取年龄大于28的对象。 5.修改数据:使用算术运算符或字符串连接等操作来修改JSON中的值。 •示例:.age += 5 可以为每个对象的 age 值增加5。 echo '[{"name":"John","age":30},{"name":"Jane","age":25}]' | jq '.[] .age += 5' 6.格式化输出:默认情况下,jq 输出的是紧凑的JSON格式。要获得更易读的输出,可以添加 -C 参数以彩色打印或者 -M 参数禁用颜色并使用 . | debug 来查看原始输入。 •示例:jq . input.json 对比 jq -C . input.json。 笔者做了个对比实验有如下发现:

cat一下看看

朋友们可以试试 -M 选项的效果。 7.组合多个操作:可以通过管道将多个操作结合起来。 •示例:命令 jq '.items[] | select(.type == "fruit") | .name' 可以从列表中选出类型为“fruit”的项,并返回它们的名字。 类似地 echo '[{"name":"John","age":30},{"name":"Jane","age":25}]' | jq '.[] | select(.age > 28) | .name' 8.读取外部变量:使用 --arg--argjson 参数可以在命令中传入外部变量。 •示例: 命令jq --arg name "John" '.name = $name' 将设置JSON对象中的 name 字段为 "John"。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序熵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • jq 命令常见用法及小发现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档