Gar*_*man 3 nested key filter jq
鉴于此输入:
{
"10000703": {
"show_id": 1641788,
},
"10000838": {
"show_id": 1517903,
},
"10001325": {
"show_id": 1641788,
},
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个过滤器来说明“返回show_id不等于的所有对象1641788”
预期输出将是:
{
"10000838": {
"show_id": 1517903,
},
}
Run Code Online (Sandbox Code Playgroud)
无法排除嵌套对象:(
这是with_entries/1jq 可能带来的便利和简洁的一个很好的例子:
with_entries( select(.value.show_id != 1641788 ))
Run Code Online (Sandbox Code Playgroud)
with_entries/1将对象转换为显式的 .key/.value 表示。有关详细信息,请参阅jq 手册。
或者,更简洁,在这种情况下也可以使用del/1:
del( .[] | select( .show_id == 1641788 ) )
Run Code Online (Sandbox Code Playgroud)