代码之家  ›  专栏  ›  技术社区  ›  eekfonky

jq select或语句

jq
  •  0
  • eekfonky  · 技术社区  · 7 年前

    我有以下输入json:

    {
      "TagList": [
        {
          "Key": "Environment",
          "Value": "foo"
        },
        {
          "Key": "ENVIRONMENT",
          "Value": "bar"
        }
      ]
    }
    

    jq :

    jq -r '.TagList[] | select(.Key=="ENVIRONMENT") | .Value' input.json
    

    但事实证明,关键也可能是 Environment

    jq -r '.TagList[] | select((.Key=="ENVIRONMENT") | .Value' or .Key=="Environment" | .Value)
    

    但会出现以下错误:

    jq: error: syntax error, unexpected $end, expecting ';' or ')' (Unix shell quoting issues?) at <top-level>, line 1:
    .TagList[] | select((.Key=="ENVIRONMENT") | .Value
    jq: 1 compile error
    

    2 回复  |  直到 7 年前
        1
  •  5
  •   hek2mgl    7 年前

    可以使用以下命令:

    jq '.TagList[]|select(.Key=="Environment" or .Key=="ENVIRONMENT").Value'
    
        2
  •  4
  •   peak    7 年前

    概括一下:

    .TagList[]
    | select(.Key | ascii_upcase == "ENVIRONMENT").Value