JPath для частичного совпадения запроса

Aug 20 2020

Я пытаюсь изучить запрос 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» в качестве результатов. Как я могу это сделать?

Ответы

1 DmitriT Aug 20 2020 at 23:05

Вы можете использовать оператор фильтра=~ совпадений, который позволяет предоставить регулярное выражение вместо строгого значения, поэтому, если вы измените свой запрос, например:

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

в результате вы получите оба типа:

Дополнительные сведения: Плагин JMeter JSON Path Extractor - расширенные сценарии использования