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

如何用JQ提取JSON文件中匹配指定邮箱的resourceName值

问题排查

你原本的命令失效的核心原因是 emailAddresses 是数组结构,无法直接通过.emailAddresses.value访问到内部邮箱值,需要先展开数组元素再做匹配判断。

正确实现方案

方案1:精确匹配邮箱(推荐,无正则额外开销)

如果需要完全匹配指定邮箱,使用如下命令:

jq -r '.connections[] | select( .emailAddresses[]?.value == "mail@mail1.com" ) | .resourceName' file.json

说明:

  • 加-r参数可以直接输出纯文本name_1,不会带多余的双引号
  • 表达式中的?是容错处理,当某个connections元素不存在emailAddresses字段时不会抛出报错

方案2:保留不区分大小写的正则匹配

如果需要沿用你原本的不区分大小写正则匹配逻辑,使用any()判断数组中是否存在符合条件的元素:

jq -r '.connections[] | select( any(.emailAddresses[]; .value | test("mail@mail1.com"; "i")) ) | .resourceName' file.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:06:04