如何将字段排除在与JSONPATH的选择之外



我试图将JSON PathS表达中的JSON中的某些字段排除,但它不起作用。我无法编写仅匹配某些字段的正确表达,而没有排除。

我试图使用这样的$ ..个人。

我有这样的JSON:

{
  "personal": {
    "fullName": "full Name",
    "firstName": "first Name",
    "email": "hello@email.com"
    }
}

我试图使用此行选择没有电子邮件字段的字段:

$.personal.[?(!@.email)]

,但我只得到了这个结果或错误:

[
  "full Name",
  "first Name",
  "hello@email.com"
]

我想获得这样的结果:

[
  "full Name",
  "first Name"
]

据我所知,您不能排除属性(即黑名单方法(,但是您可以选择要包括哪些属性(即,白名单方法(。

在第二种情况下,您遗漏的任何属性均未被查询捕获。

所以在您的示例中,

$.personal.['fullname','firstname']

是您需要的。它不是完全相同的,因为您可能不知道属性名称