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 - สถานการณ์การใช้งานขั้นสูง