【问题标题】:How to exclude fields from selection with jsonPath如何使用 jsonPath 从选择中排除字段
【发布时间】:2019-06-26 17:25:46
【问题描述】:

我试图通过 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"
]

【问题讨论】:

    标签: json-path-expression


    【解决方案1】:

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

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

    所以在你的例子中,

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      相关资源
      最近更新 更多