【问题标题】:how to select a json object where a child value array contains a certain propery如何选择子值数组包含某个属性的json对象
【发布时间】:2017-05-13 04:55:16
【问题描述】:

我有一个类似于以下的对象数组:

[
  {
    "id": "one",
    "tags": {
      "my.key": "true"
    }
  },
  {
    "id": "two",
  }
]

如何为每个包含“my.key”为“true”标签的对象选择所有“id”值?

【问题讨论】:

    标签: json jq


    【解决方案1】:

    您可以将select.tags["my.key"] == "true" 一起使用,并且只获取id 字段:

    jq '.[] | select(.tags["my.key"] == "true") | .id' data.json
    

    【讨论】:

    • 感谢您的快速响应!我还得到了基于another answer的替代解决方案:map(select(.tags["my.key"] == "true")) | .[] .id
    • 这几乎是一回事。我的“选择”语法中有一个错字,你帮我找到了,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2016-11-02
    • 2019-12-22
    • 2023-02-25
    相关资源
    最近更新 更多