JSONPath 过滤具有特定值的顶级键

JSONPath filter top level key with certain value

考虑以下 JSON:

{
    "expensive": 10,
    "abc":10
}

我想编写一个过滤器,如果键 abc 等于 10,则 return 为真,即在上面的示例中,答案是 true,而在以下示例中,它是 false:

{
    "expensive": 10
}

因为没有这样的键abc

我试过这些过滤器:

  1. $[?(@ == 10)] returns [10,10] 第一个 json 和 [10] 第二个,但我想强制检查 abc 字段,即第二个应该 return 什么都没有。如何实现?

我假设您有一个输入对象数组并且想要过滤它们。

[{
    "expensive": 10,
    "abc":10
}, {
    "expensive": 10
}]

这里$[?(@.abc == 10)]returns

[
  {
    "expensive": 10,
    "abc": 10
  }
]

$[?(@.abc == 10)].expensivereturns

[
  10
]