过滤JMESPath

时间:2018-06-09 13:47:01

标签: json filter filtering jmespath

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"的所有位置?谢谢。

1 个答案:

答案 0 :(得分:1)

按字符和字符串过滤的方式相同。

查询位置w /包含"l"

的名称
locations[?name.contains(@, `l`)]

<强>结果:

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

查询位置w /包含"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"
  }
]