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

คุณจะได้รับทั้งสองประเภทเป็นผลลัพธ์:

ข้อมูลเพิ่มเติม: ปลั๊กอิน JSON Path Extractor ของ JMeter - สถานการณ์การใช้งานขั้นสูง