jq:排除具有指定键的对象

6

输入:

{
    "name":"JSON",
    "good":true,
    "target":"yes"
}
{
    "name":"XML",
    "good":false
}

我希望排除没有“target”键的对象,如下所示但不包括:
jq -r ".| select(has(\"target\"))"

期望输出:

{
    "name":"XML",
    "good":false
}

我尝试了这个:

jq -r " . | del(select(has(\"target\")))"

但是有两个返回对象,其中一个为NULL

null
{
  "good": false,
  "name": "XML"
}
1个回答

11

选择那些没有target的人;这样,您就不需要使用del

jq -r 'select(has("target") | not)'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接