JSONPath เป็นภาษานิพจน์พาธสำหรับแยกข้อมูลที่ระบุจากเอกสาร JSON คล้ายกับที่ XPath ทำกับ XML ในการพัฒนาและทดสอบ API JSON ที่อินเทอร์เฟซส่งกลับมักมีระดับชั้นลึกและซ้อนกันมาก การขยายด้วยตนเองทีละชั้นเพื่อค้นหาฟิลด์มีประสิทธิภาพต่ำและมักผิดพลาด การใช้ JSONPath สามารถระบุตำแหน่งและแยกข้อมูลเป้าหมายได้อย่างถูกต้องด้วยนิพจน์บรรทัดเดียว เป็นสิ่งจำเป็นสำหรับนักพัฒนาในสถานการณ์ดีบักอินเทอร์เฟซ ทดสอบอัตโนมัติ และแยกข้อมูล
แนวคิดการออกแบบหลักของ JSONPath คือการใช้สัญลักษณ์พาธเพื่ออธิบายตำแหน่งข้อมูล: $ แทนโหนดราก (ออบเจ็กต์ JSON ทั้งหมด) จุด . หรือวงเล็บเหลี่ยม [] เข้าถึงคุณสมบัติลูก, [n] เข้าถึงองค์ประกอบอาร์เรย์ตามดัชนี, [*] จับคู่องค์ประกอบทั้งหมด, [start:end] สไลซ์ส่วนของอาร์เรย์, ?() กรององค์ประกอบอาร์เรย์ตามเงื่อนไข ไวยากรณ์ชุดนี้กระชับแต่มีประสิทธิภาพ ครอบคลุมความต้องการแยกข้อมูลส่วนใหญ่
การกรองตามเงื่อนไขเป็นหนึ่งในฟังก์ชันที่ใช้งานได้จริงที่สุดของ JSONPath ใช้รูปแบบ ?(@.ฟิลด์ ตัวดำเนินการ ค่า) เพื่อแสดงตรรกะการกรอง ตัวอย่างเช่น ?(@.price < 100) กรองรายการอาร์เรย์ที่ฟิลด์ราคาน้อยกว่า 100, ?(@.status == 'active') กรองระเบียนที่สถานะเป็นแอคทีฟ @ แทนองค์ประกอบอาร์เรย์ที่กำลังวนซ้ำอยู่ในปัจจุบัน @.field เข้าถึงฟิลด์เฉพาะขององค์ประกอบปัจจุบัน ทำให้การกรองตามเงื่อนไขเข้าใจง่ายมาก
เหตุใดจึงต้องมีเครื่องมือ JSONPath เฉพาะแทนที่จะดีบักโดยตรงในโค้ด? เนื่องจากเมื่อเขียนการยืนยันอัตโนมัติของอินเทอร์เฟซหรือโค้ดแยกข้อมูล หาก JSONPath เขียนผิด คุณอาจต้องเรียกอินเทอร์เฟซซ้ำๆ พิมพ์บันทึก แก้ไขโค้ดแล้วรันใหม่ มีประสิทธิภาพต่ำมาก การดีบักแบบโต้ตอบในเครื่องมือออนไลน์สามารถเห็นผลลัพธ์ในระดับวินาที ปรับนิพจน์และตอบสนองทันที หลังจากยืนยันถูกต้องแล้วจึงคัดลอกไปยังโค้ด ช่วยประหยัดเวลาดีบักได้มาก
มุมมองตารางเป็นฟังก์ชันที่ใช้งานได้จริงซึ่งทำให้เครื่องมือนี้แตกต่างจากเครื่องมืออื่นๆ มากมาย: เมื่อผลลัพธ์การคิวรีเป็นอาร์เรย์ออบเจ็กต์ (ซึ่งเป็นรูปแบบรายการที่อินเทอร์เฟซส่งกลับบ่อยที่สุด) จะแยกคีย์ของออบเจ็กต์ทั้งหมดเป็นส่วนหัวตารางโดยอัตโนมัติ แสดงข้อมูลแต่ละแถวอย่างจัดแนว คล้ายกับประสบการณ์การเรียกดูตาราง Excel สะดวกและชัดเจนมากกว่าการค้นหาค่าฟิลด์ทีละแถวใน JSON ที่เยื้อง สามารถสแกนและเปรียบเทียบความแตกต่างฟิลด์ของหลายระเบียนได้ด้วยตาเพียงชำเลือง
การซ่อมแซมข้อผิดพลาด JSON อัตโนมัติยังเป็นฟังก์ชันที่ออกแบบมาสำหรับสถานการณ์การพัฒนาจริง: JSON ที่คัดลอกมาจากบันทึก เอกสาร หน้าต่างแชท มักมีปัญหาเล็กน้อยต่างๆ — ใช้อัญประกาศเดี่ยว ขาดจุลภาค มีจุลภาคท้ายที่รายการสุดท้าย ชื่อคุณสมบัติไม่มีอัญประกาศ ฯลฯ การซ่อมแซมด้วยตนเองยุ่งยาก ฟังก์ชันซ่อมแซมอัตโนมัติของเครื่องมือสามารถจัดการปัญหารูปแบบ JSON ทั่วไปส่วนใหญ่ได้ด้วยคลิกเดียว ไม่ต้องค้นหาข้อผิดพลาดทีละตัวอักษร
ประวัติในเครื่องเป็นรายละเอียดเล็กน้อยที่ปรับให้เหมาะกับการใช้งานบ่อย: นักพัฒนามักต้องดีบักอินเทอร์เฟซเดิมซ้ำๆ การเปิดเครื่องมือแล้ววาง JSON ซ้ำทุกครั้งยุ่งยาก เครื่องมือจะบันทึกข้อมูลที่ป้อนล่าสุดลงในที่จัดเก็บในเครื่องของเบราว์เซอร์อัตโนมัติ เปิดครั้งต่อไปจะกู้คืนเนื้อหาครั้งก่อนอัตโนมัติ ประวัติ 200 รายการเพียงพอสำหรับการใช้งานประจำวัน ข้อมูลทั้งหมดเก็บอยู่ในเบราว์เซอร์ของคุณเองเท่านั้น ไม่อัปโหลด
ต้องชี้แจงว่าเครื่องมือนี้รองรับชุดย่อยไวยากรณ์ JSONPath หลักที่ใช้งานได้จริง (การเข้าถึงคุณสมบัติ ดัชนี ไวด์การ์ด สไลซ์ การกรองตามเงื่อนไข) ครอบคลุมมากกว่า 90% ของสถานการณ์การพัฒนาประจำวัน สำหรับไวยากรณ์ขั้นสูงเช่น การเรียกซ้ำ (recursive descent, ..), นิพจน์สคริปต์, การรวมหลายเงื่อนไข ยังไม่รองรับในขณะนี้ หากสถานการณ์ของคุณต้องการคุณสมบัติขั้นสูงเหล่านี้ อาจต้องใช้ไลบรารีการนำไปใช้ที่สมบูรณ์มากขึ้น สำหรับความต้องการดีบักอินเทอร์เฟซและแยกฟิลด์ส่วนใหญ่ ไวยากรณ์ปัจจุบันเพียงพอและมีน้ำหนักเบารวดเร็ว