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

使用jq工具过滤JSON数组:移除指定键全非true的元素

需求说明

给定如下JSON数组:

[
  {
    "1": "false",
    "2": "true",
    "3": "true"
  },
  {
    "1": "false",
    "2": "false",
    "3": "false"
  },
  {
    "1": "true",
    "2": "true",
    "3": "true"
  }
]

需使用jq工具,传入参数数组["1","2","3"],移除数组中指定键对应的值全不为"true"的元素,最终得到如下结果:

[
  {
    "1": "false",
    "2": "true",
    "3": "true"
  },
  {
    "1": "true",
    "2": "true",
    "3": "true"
  }
]
解决方案

使用jq的--argjson参数传入指定键数组,结合any()函数完成过滤:

jq --argjson keys '["1","2","3"]' 'map(select(any($keys[]; .[$_] == "true")))' input.json
命令解释
  • --argjson keys '["1","2","3"]':将指定的键数组以JSON类型传入jq,命名为变量$keys
  • map(...):遍历输入数组中的每个对象
  • select(any($keys[]; .[$_] == "true")):对每个对象检查是否存在任意一个指定键对应的值为"true",满足条件的对象保留,所有指定键值均为"false"的对象被移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:15:38