使用包含过滤 JMESPath

Filtering JMESPath with contains

JMESPath 是 JSON 的一种查询语言,由 Azure 使用。

使用 http://jmespath.org/

给出的自己的示例
{
  "locations": [
    {"name": "Seattle", "state": "WA"},
    {"name": "New York", "state": "NY"},
    {"name": "Bellevue", "state": "WA"},
    {"name": "Olympia", "state": "WA"}
  ]
}

如何列出名称中包含字母 "l" 或字符串 "le" 的所有地点?谢谢。

按字符过滤和按字符串过滤效果相同。


查询名称包含 "l"

的位置
locations[?name.contains(@, `l`)]

结果:

[
  {
    "name": "Seattle",
    "state": "WA"
  },
  {
    "name": "Bellevue",
    "state": "WA"
  },
  {
    "name": "Olympia",
    "state": "WA"
  }
]

查询名称包含 "le"

的位置
locations[?name.contains(@, `le`)]

结果:

[
  {
    "name": "Seattle",
    "state": "WA"
  },
  {
    "name": "Bellevue",
    "state": "WA"
  }
]

查询名称包含 "ue""ia"

的位置
locations[?name.contains(@, `ue`) || name.contains(@, `ia`)]

结果:

[
  {
    "name": "Bellevue",
    "state": "WA"
  },
  {
    "name": "Olympia",
    "state": "WA"
  }
]