如何使用jsonPath从选择中排除字段

时间:2019-06-26 17:25:46

标签: json-path-expression

我正在尝试通过jsonPath表达式从Json排除某些字段,但是它不起作用。我不能正确地写出只匹配某些字段的表达式,而不能排除。

我试图使用类似$ .personal。[?(!@。email)]这样的方法,但是它不起作用。

我有这样的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"
]

1 个答案:

答案 0 :(得分:0)

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

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

在您的示例中,

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

是您所需要的。不太一样,因为您可能不提前知道属性名称