การทำงานของเครื่องมือทดสอบ JSONPath
เครื่องมือนี้ช่วยให้คุณสามารถทดสอบนิพจน์ JSONPath กับข้อมูล JSON ได้อย่างสะดวก เพียงแค่คุณวางข้อมูล JSON และพิมพ์นิพจน์ JSONPath ลงในเครื่องมือ ระบบจะแสดงค่าที่ตรงกับนิพจน์ของคุณพร้อมกับเส้นทาง (path) ของค่านั้นใน JSON ต้นฉบับให้เห็นทันที การทำงานในลักษณะนี้ช่วยให้คุณเข้าใจได้อย่างชัดเจนว่านิพจน์ JSONPath ของคุณจะดึงข้อมูลใดออกมาจากข้อมูล JSON ต้นฉบับ
ข้อมูลนำเข้าและข้อจำกัด
เครื่องมือนี้รองรับข้อมูลนำเข้าสองส่วนหลัก โดยมีข้อจำกัดด้านขนาดดังต่อไปนี้:
- ข้อมูลนำเข้า JSON: คุณสามารถวางข้อมูล JSON ลงในพื้นที่ข้อความได้ โดยขนาดสูงสุดของข้อมูลนำเข้าจะต้องไม่เกิน 500,000 ตัวอักษร
- นิพจน์ JSONPath: คุณสามารถพิมพ์หรือวางนิพจน์ JSONPath ลงในช่องกรอกข้อมูล โดยความยาวสูงสุดของนิพจน์จะต้องไม่เกิน 4,000 ตัวอักษร
ผลลัพธ์และการแสดงผล
เมื่อเครื่องมือประมวลผลนิพจน์ JSONPath เรียบร้อยแล้ว จะแสดงผลลัพธ์ต่างๆ ดังนี้:
- ค่าที่ตรงกัน: รายการของค่าทั้งหมดที่ตรงกับนิพจน์ JSONPath ที่คุณระบุ
- รายการที่ตรงกัน:
{count}: แสดงจำนวนรายการทั้งหมดที่ค้นพบ - แสดงเฉพาะ
{max}รายการแรก: ข้อความแจ้งเตือนในกรณีที่มีผลลัพธ์จำนวนมาก โดยเครื่องมือจะแสดงผลลัพธ์สูงสุดเพียง 200 รายการเท่านั้น หากมีผลลัพธ์มากกว่านั้นจะแสดงข้อความ "รายการที่ตรงกัน: 200+" และระบุว่าแสดงเฉพาะรายการแรกๆ เท่านั้น - รายละเอียด: หัวข้อสำหรับแสดงมุมมองโดยละเอียดของผลลัพธ์แต่ละรายการที่ตรงกัน
- ไม่พบข้อมูลที่ตรงกัน: ข้อความที่จะแสดงเมื่อไม่มีค่าใดใน JSON ที่ตรงกับนิพจน์ที่ระบุ
- ล้างข้อมูลแล้ว: ข้อความที่แสดงหลังจากที่คุณกดล้างข้อมูลนำเข้าทั้งหมด
ข้อผิดพลาดและการจัดการกรณีพิเศษ
เครื่องมือนี้มีระบบตรวจสอบและแจ้งเตือนข้อผิดพลาดในกรณีต่างๆ ดังนี้:
- รูปแบบ JSON ไม่ถูกต้อง: จะแสดงขึ้นเมื่อข้อมูล JSON นำเข้ามีรูปแบบที่ไม่ถูกต้องตามโครงสร้าง
- นิพจน์ JSONPath นี้ไม่ถูกต้อง: จะแสดงขึ้นเมื่อนิพจน์ JSONPath ที่กรอกมีรูปแบบไวยากรณ์ที่ไม่ถูกต้อง
- ไม่สามารถประมวลผล JSONPath นี้ได้: จะแสดงขึ้นเมื่อระบบไม่สามารถประมวลผลหรือประเมินค่านิพจน์ JSONPath นั้นได้
- การประมวลผล JSONPath นี้ใช้เวลานานเกินไป กรุณาจำกัดขอบเขตนพจน์ให้แคบลงหรือใช้ข้อมูลตัวอย่างที่เล็กลง: จะแสดงขึ้นเมื่อการประมวลผลใช้เวลานานเกินขีดจำกัดที่กำหนดไว้ โดยระบบจะหยุดทำงานทันทีหลังจากครบกำหนดเวลาสั้นๆ
- ข้อมูล JSON นี้มีขนาดใหญ่เกินกว่าจะทดสอบที่นี่ได้ กรุณาลองใช้ข้อมูลตัวอย่างที่เล็กลง: จะแสดงขึ้นเมื่อข้อมูล JSON นำเข้ามีขนาดเกิน 500,000 ตัวอักษร
- นิพจน์ JSONPath นี้ยาวเกินกว่าจะทดสอบที่นี่ได้: จะแสดงขึ้นเมื่อนิพจน์ JSONPath มีความยาวเกิน 4,000 ตัวอักษร
รูปแบบไวยากรณ์ที่รองรับ
เครื่องมือนี้รองรับรูปแบบการเขียน JSONPath ทั่วไป เพื่อช่วยให้คุณสามารถเลือกข้อมูลได้อย่างแม่นยำ ได้แก่:
- การค้นหาแบบเรียกซ้ำ (Recursive Descent) เช่น การใช้
$..priceเพื่อค้นหาข้อมูลที่อยู่ลึกลงไปในโครงสร้าง - การใช้ตัวกรอง (Filters) เช่น
[?@.price < 10]เพื่อกรองข้อมูลตามเงื่อนไขที่ต้องการ - การแบ่งส่วนอาร์เรย์ (Array Slices) เพื่อเลือกเฉพาะช่วงของข้อมูลอาร์เรย์ที่ต้องการ
นอกจากนี้ ผลลัพธ์แต่ละรายการที่แสดงจะระบุเส้นทาง (path) ต้นกำเนิดของค่านั้นๆ ใน JSON ต้นฉบับเสมอ เพื่อให้คุณทราบตำแหน่งที่มาของข้อมูลได้อย่างถูกต้อง
ความเป็นส่วนตัวและการประมวลผลข้อมูล
ความเป็นส่วนตัวของข้อมูลของคุณเป็นสิ่งสำคัญ JSON และนิพจน์ JSONPath ของคุณจะถูกทดสอบและประมวลผลภายในเบราว์เซอร์ของคุณโดยตรง จะไม่มีการอัปโหลดข้อมูลใดๆ ของคุณไปยัง BroBroGo อย่างเด็ดขาด
กลุ่มผู้ใช้งานที่เหมาะสม
เครื่องมือนี้ได้รับการออกแบบมาเพื่อให้ตอบโจทย์การทำงานของบุคคลกลุ่มต่างๆ ดังนี้:
- นักพัฒนา API ที่ต้องทำงานกับโครงสร้างข้อมูล JSON
- ผู้ทดสอบระบบ (Testers) ที่ต้องการตรวจสอบความถูกต้องของข้อมูล
- วิศวกรข้อมูล (Data Engineers)
- เจ้าหน้าที่สนับสนุนด้านเทคนิค (Support Personnel)
- ผู้ที่ต้องการทำความเข้าใจว่านิพจน์ JSONPath จะดึงข้อมูลใดออกมาจาก JSON
- ผู้ที่ต้องการคัดลอกค่าเฉพาะเจาะจงจาก JSON โดยยังคงต้องการเก็บข้อมูลตำแหน่งอ้างอิงเดิมเอาไว้
คำถามที่พบบ่อย (FAQ)
ถาม: ฉันสามารถใช้ไวยากรณ์ JSONPath แบบใดได้บ้าง?
ตอบ: คุณสามารถใช้รูปแบบ JSONPath ทั่วไปได้ เช่น $.store.book[*].title, การค้นหาแบบเรียกซ้ำด้วย $..price, ตัวกรองเช่น [?@.price < 10] และการแบ่งส่วนอาร์เรย์ (array slices)
ถาม: ทำไมผลลัพธ์แต่ละรายการจึงแสดงเส้นทาง (path)? ตอบ: เส้นทาง (path) จะแสดงตำแหน่งที่มาของค่าใน JSON ต้นฉบับ เพื่อให้คุณสามารถคัดลอกผลลัพธ์ที่ตรงกันได้โดยไม่สูญเสียข้อมูลตำแหน่งอ้างอิง
ถาม: ทำไมการค้นหาจึงหมดเวลา (timeout)? ตอบ: การค้นหาแบบเรียกซ้ำ (recursive queries) ที่กว้างมากหรือข้อมูลตัวอย่างที่มีขนาดใหญ่มากอาจใช้เวลานานเกินไป ระบบทดสอบจะหยุดการทำงานหลังจากครบกำหนดเวลาสั้นๆ เพื่อให้คุณสามารถจำกัดขอบเขตนพจน์ให้แคบลงหรือใช้ข้อมูลตัวอย่างที่เล็กลงได้