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

如何用jq过滤JSON子节点,仅保留含非空dependencies的条目

使用jq过滤保留非空依赖的条目

直接用这条jq命令就能实现你的需求:

jq '.dev |= with_entries(select(.value.dependencies | length > 0) | .value = {dependencies: .value.dependencies})' input.json

命令拆解:

  • .dev |= ...:针对顶层的dev对象进行修改,把处理后的结果替换原dev字段
  • with_entries(...):遍历dev下的每个键值对(比如Alpha、Beta这些条目)
  • select(.value.dependencies | length > 0):只保留满足两个条件的条目:
    1. 条目包含dependencies字段
    2. dependencies是非空数组(长度大于0)
      这样Beta(无dependencies)、Delta(dependencies为空)都会被过滤掉
  • .value = {dependencies: .value.dependencies}:把筛选后的条目只保留dependencies字段,自动丢弃其他未知字段(比如Alpha的other_value_1、other_value_n)

验证效果:

把你的输入JSON存为input.json,执行上面的命令,输出就是你想要的结果:

{
  "dev": {
    "Alpha": {
      "dependencies": [
        "Gamma",
        "Delta"
      ]
    },
    "Gamma": {
      "dependencies": [
        "Delta"
      ]
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:30:42