簡體   English   中英

Select 對象基於使用 jq 的嵌套對象中的變量值

[英]Select objects based on value of variable in nested objects using jq

我的問題與此處發現的問題非常相似 -

我有以下 JSON

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

使用 jq 我想要原始的 object 格式反向過濾狀態 FAILED

結果:

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

我嘗試了上面 post to_entries | map(select(.value.Status=="FAILURE")) | from_entries中建議的兩種解決方案to_entries | map(select(.value.Status=="FAILURE")) | from_entries to_entries | map(select(.value.Status=="FAILURE")) | from_entries'with_entries(select(.value.Status =="FAILURE"))'都給出空結果。 兜兜轉轉。 任何幫助表示贊賞

您的Status屬性嵌套在Result object 中,但您直接選擇Status 您必須在 .value.Result.Status 上.value.Result.Status

with_entries(select(.value.Result.Status == "FAIL"))

map_values甚至更短:

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

Output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM