【问题标题】:Select objects based on value of variable in nested objects using jq使用jq根据嵌套对象中的变量值选择对象
【发布时间】:2023-01-09 21:28:42
【问题描述】:

我的问题与 here 中的问题非常相似 -

我有以下 JSON

{
"FOO": {
    "id": "23432423",
    "Result": {
        "Status": "SUCCESS",
        "Reason": ""
    }
},
"BAR": {
    "id": "45345535",
    "Result": {
        "Status": "FAILURE",
        "Reason": ""
    }
},
"BAZ": {
    "id": "123432423",
    "Result": {
        "Status": "SUCCESS",
        "Reason": ""
    }
}

}

使用 jq 我希望原始对象格式在状态 FAILED 上反向过滤

结果:

"BAR": {
    "id": "45345535",
    "Result": {
        "Status": "FAILURE",
        "Reason": ""
    }
}

我尝试了上面帖子中建议的两种解决方案 to_entries | map(select(.value.Status=="FAILURE")) | from_entries'with_entries(select(.value.Status =="FAILURE"))' 都给出空结果。兜兜转转。任何帮助表示赞赏

【问题讨论】:

    标签: json bash jq nested-object


    【解决方案1】:

    map_values 应该工作:

    map_values(select(.Result.Status == "FAIL"))
    

    输出:

    {
      "BAR": {
        "id": "x....4",
        "Result": {
          "Status": "FAIL",
          "Reason": ""
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多