JPath用于部分查询匹配

问题描述

我正在尝试学习json jpath查询。我已经能够根据精确的搜索成功返回数据。

例如在站点https://jsonpath.com/上,我可以根据电话号码成功检索电话类型:

JSON

{
  "firstName": "John","lastName" : "doe","age"      : 26,"address"  : {
    "streetAddress": "naist street","city"         : "Nara","postalCode"   : "630-0192"
  },"phoneNumbers": [
    {
      "type"  : "iPhone","number": "0123-4567-8888"
    },{
      "type"  : "home","number": "0123-4567-8910"
    }
  ]
}

查询

$.[?(@.number== '0123-4567-8888')].type

但是,我找不到任何示例来说明如何匹配部分搜索结果。我正在尝试编写一个查询,只提供“ 0123”,因此返回返回的“家”和“ iPhone”作为结果。

解决方法

您可以使用=~匹配filter operator来提供regular expression而不是严格的值,因此可以修改查询,例如:

$.phoneNumbers[?(@.number=~/.*0123.*/)].type

您将得到两种类型的结果:

enter image description here

更多信息:JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios