首页 > 解决方案 > jq如何根据条件获取返回值

问题描述

所以我试图弄清楚如何"CPU"根据来自"Tags"...的值的条件获取值"Value"

"CPU"因此,如果标签中的值是,我想打印该NO 值。此示例的返回值将是:"Identifier-0002"

这是数据:

{
  "LIST": [
    {
      "CPU": "Identifier-0002",
      "Tags": [
        {
          "Key": "Family",
          "Value": "X"
        },
        {
          "Key": "Available",
          "Value": "NO"
        }
      ]
    },
    {
      "CPU": "Identifier-0001",
      "Tags": [
        {
          "Key": "Family",
          "Value": "X"
        },
        {
          "Key": "Available",
          "Value": "YES"
        }
      ]
    }
  ]
}

有任何想法吗 ?

谢谢 !

标签: linuxjq

解决方案


您可以执行以下操作。这基本上检查 inside LIST,看看是否有任何对象的值是NO并获取它的CPU值。

jq '.LIST[] | select(.Tags[].Value == "NO")? | .CPU'

推荐阅读