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

如何使用jq提取未知层级的目标键值对(单匹配或首个匹配)

提取未知层级的JSON键值

当确定键的层级时,你可以用这类命令直接提取:

jq -r .x <<< '{"x": "abc"}'

如果不确定目标键x所在的层级,不管它嵌套在多少层对象或数组里,都可以用jq的递归遍历语法来定位:

提取首个匹配项

只需一行命令就能拿到第一个找到的x的值:

jq -r '.. | select(has("x")) | .x' <<< '{..., {"x": "abc"}, ...}'

更简洁的写法,利用安全访问避免报错:

jq -r '.. | .x? | select(.)' <<< '{..., {"x": "abc"}, ...}'

提取所有匹配项

如果JSON里有多个x键,上面的命令会输出所有匹配的值(每行一个)。

语法说明

  • ..:递归遍历JSON结构的每一个节点,包括嵌套对象、数组元素等。
  • select(has("x")):筛选出包含x键的节点。
  • .x?:安全访问x键,节点没有该键时返回null,不会抛出错误。
  • select(.):过滤掉null、false这类无效值,只保留有效的x值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:55:14