คู่มือเปรียบเทียบ JSON
เปรียบเทียบโครงสร้าง JSON ตามความหมาย ไม่ใช่ระยะเยื้อง
JSON object ไม่มีลำดับ key ที่มีความหมาย เครื่องมือนี้จึงจับคู่ property และแสดง path ของค่าที่เพิ่ม ลบ เปลี่ยน หรือมีชนิดข้อมูลต่างกัน โดยไม่สร้างความต่างปลอมจากการจัดรูปแบบ
วิธีใช้งานทีละขั้นตอน
- 01
ตรวจ JSON ทั้งสองชุด
แก้ syntax error ก่อน เพื่อให้เครื่องมือแยกความต่างของข้อมูลได้อย่างถูกต้อง
- 02
เลือกโหมด array
ใช้ Smart match กับรายการที่มี id, ใช้ตามตำแหน่งเมื่อลำดับสำคัญ และไม่สนลำดับกับชุดข้อมูล
- 03
ตาม path ไปยังต้นทาง
ใช้ path เช่น $.orders[1].price เพื่อหาค่าที่เปลี่ยนใน API response หรือไฟล์ config
รายละเอียดที่ควรตรวจสอบก่อนนำผลลัพธ์ไปใช้
- ตัวเลข 1 และข้อความ "1" เป็นคนละชนิดข้อมูล
- เลือกโหมด array ให้ตรงกับความหมายของรายการ
- ตรวจค่า null, key ที่หายไป และ key ที่มีค่า undefined จากระบบต้นทางแยกกัน
แนวคิดและข้อจำกัดที่สำคัญ
Object เทียบตาม key
ลำดับ property ของ JSON object ไม่มีความหมาย เครื่องมือจึงไม่รายงานความต่างเมื่อมีเพียงการสลับ key หรือเปลี่ยน indentation
เลือกโหมด array ตามเจตนา
Smart match เหมาะกับ record ที่มี id, By position เหมาะกับ ranking หรือ coordinate และ Ignore order เหมาะกับ tag หรือ permission set
คำถามที่พบบ่อย
ทำไม 1 กับ "1" จึงต่างกัน?
เพราะ JSON แยกชนิด number และ string แม้จะแสดงอักขระคล้ายกัน
หาตำแหน่งค่าที่เปลี่ยนอย่างไร?
ทุกความต่างมี JSON path เช่น $.order.items[1].price เพื่อย้อนกลับไปยังข้อมูลต้นทาง