我正在尝试通过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"
]
答案 0 :(得分:0)
据我所知,您不能排除某个属性(即黑名单方法),但是可以选择要包括的属性(即白名单方法)。
在第二种情况下,查询不会捕获您遗漏的任何属性。
在您的示例中,
$.personal.['fullname','firstname']
是您所需要的。不太一样,因为您可能不提前知道属性名称