部分的なクエリ一致のJPath

Aug 20 2020

私はjsonjpathクエリを学ぼうとしています。正確な検索に基づいてデータを返すことができました。

たとえば、サイトで: 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パス抽出プラグイン-高度な使用シナリオ