You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq进行查找过滤:根据名称筛选并获取对应年龄

如何用jq按名称过滤JSON并获取对应年龄?

假设我们有这样的JSON数据:

[ { "id": 1, "name": "Arthur", "age": "21" }, { "id": 2, "name": "Richard", "age": "32" } ]

要实现指定名称(比如"Richard")后返回对应的年龄("32"),用jq可以这样做:

基础命令(处理所有匹配项)

如果你的JSON存在文件中(比如命名为data.json),执行这条命令:

jq '.[] | select(.name == "Richard") | .age' data.json

如果是直接通过管道传入JSON字符串:

echo '[ { "id": 1, "name": "Arthur", "age": "21" }, { "id": 2, "name": "Richard", "age": "32" } ]' | jq '.[] | select(.name == "Richard") | .age'

命令拆解

咱们来拆解下每个部分的作用:

  • .[]:遍历数组中的每一个对象元素
  • select(.name == "Richard"):筛选出name字段严格等于"Richard"的对象
  • .age:从筛选后的对象中提取age字段的值

进阶:只返回第一个匹配项

如果担心数据里有重名的条目,想要只获取第一个匹配的年龄,可以加上first:

jq 'first(.[] | select(.name == "Richard")) | .age' data.json

这样就能精准拿到你需要的年龄值啦~

内容的提问来源于stack exchange,提问作者xpt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:52:22