![](/img/trans.png)
[英]Select objects based on value of other nested attributes using regex with 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.