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

如何让jq输出JSON时自动跳过值为null的空字段

jq过滤null字段解决方案

你可以在原有jq命令末尾添加一段删除null值字段的逻辑,即可实现值为null的字段不输出的效果。

修改后的完整命令

(.spec.rules[0].match.resources.kinds[] / "/")
| [select(.[1])[0] // null, select(.[2])[1] // null, last]
  as [$version,$group,$kind]
| {$version,$group,$kind}
| del(.[] | select(. == null))

逻辑说明

  • 新增的del(.[] | select(. == null))会遍历当前输出对象的所有字段,只要字段值等于null,就会自动删除该字段,不需要调整原有拆分逻辑
  • 该方案兼容性强,不管后续新增多少个可能为null的字段,都可以直接复用这段过滤逻辑

效果示例

  • 当处理networking.k8s.io/v1/NetworkPolicy时输出:
{
  "version": "networking.k8s.io",
  "group": "v1",
  "kind": "NetworkPolicy"
}
  • 当处理没有group的v1/Pod时输出:
{
  "version": "v1",
  "kind": "Pod"
}
  • 当处理只有kind的Pod时输出:
{
  "kind": "Pod"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:54:06