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

jq: exclude object with specified key

输入:

{
    "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"
}

Select那些没有的人有target;这样,您就不会使用 del:

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