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