DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

ตัวดูความแตกต่างของ JSON

เหมือนกัน
  • JSON ฝั่งซ้าย

  • JSON ฝั่งขวา

  • ผลลัพธ์ Diff

    ไม่มีความแตกต่าง — เอกสาร JSON ทั้งสองเหมือนกัน
    รายละเอียดทางเทคนิค

    เครื่องมือ JSON Diff ทำงานอย่างไร

    เครื่องมือนี้ทำอะไร

    เครื่องมือ JSON Diff ทำการเปรียบเทียบเชิงโครงสร้างแบบลึก (deep structural comparison) ของเอกสาร JSON สองชุด โดยระบุคีย์ที่ถูกเพิ่ม ลบ และแก้ไขในทุกระดับการซ้อน ผลลัพธ์จะแสดงด้วยการไฮไลต์แบบแยกสีเพื่อบอกอย่างชัดเจนว่าอะไรเปลี่ยนไป รวมถึงความแตกต่างของอ็อบเจ็กต์และอาร์เรย์ที่ซ้อนอยู่ภายใน วิธีนี้ให้ diff เชิงความหมายที่เข้าใจโครงสร้าง JSON แทนการเทียบเป็นบรรทัดข้อความดิบ

    กรณีการใช้งานทั่วไปของนักพัฒนา

    นักพัฒนาใช้ JSON diff เพื่อเปรียบเทียบผลตอบกลับจาก API ก่อนและหลังการเปลี่ยนโค้ด ตรวจสอบว่าการอัปเดตไฟล์คอนฟิกมีเฉพาะการแก้ไขที่ตั้งใจไว้ และดีบักความแตกต่างระหว่างการตั้งค่าในแต่ละสภาพแวดล้อม (staging vs production) เครื่องมือนี้จำเป็นสำหรับการรีวิวเอาต์พุต Terraform plan การเปรียบเทียบเวอร์ชันสคีมา OpenAPI และการตรวจสอบว่าสคริปต์ย้ายฐานข้อมูลสร้างการเปลี่ยนแปลงสคีมาตามที่คาดไว้ใน JSON export

    รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย

    เครื่องมือนี้ทำการเปรียบเทียบเชิงโครงสร้างโดยที่ลำดับคีย์ของอ็อบเจ็กต์ไม่ส่งผลต่อความเท่ากัน (เพราะอ็อบเจ็กต์ JSON ไม่เรียงลำดับตามสเปก) แต่ลำดับของสมาชิกในอาร์เรย์มีความสำคัญ การเปลี่ยนชนิดข้อมูล (สตริง '1' เทียบกับตัวเลข 1) จะถูกรายงานเป็นการแก้ไข ค่า null จะแยกจากคีย์ที่หายไป ความแตกต่างที่ซ้อนลึกจะถูกรายงานพร้อมพาธ JSON แบบเต็ม เพื่อให้คุณระบุตำแหน่งการเปลี่ยนแปลงในเอกสารที่ซับซ้อนได้โดยไม่ต้องขยายทุกระดับด้วยตนเอง

    ข้อผิดพลาดที่พบบ่อยและกรณีขอบ

    diff ของอาร์เรย์อาจมีสัญญาณรบกวนมากเมื่อมีการแทรกหรือลบสมาชิกตรงกลาง ทำให้ดัชนีถัด ๆ ไปทั้งหมดดูเหมือนเปลี่ยนไป ตัวเลขทศนิยมแบบลอยตัวอาจต่างกันเพราะความละเอียดของการ serialize (1.0 vs 1.00000000001) โดยไม่ได้หมายถึงการเปลี่ยนแปลงที่มีนัยสำคัญ เอกสาร JSON ที่ใหญ่มากและมีคีย์นับพันในระดับเดียวอาจทำให้เอาต์พุต diff ล้นและอ่านยาก — พิจารณาเปรียบเทียบเป็นส่วนย่อย ๆ แทน คอมเมนต์ไม่ใช่ JSON ที่ถูกต้อง ดังนั้นไฟล์คอนฟิกที่มีคอมเมนต์ต้องถูกลบคอมเมนต์ออกก่อนเปรียบเทียบ

    เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด

    ใช้เครื่องมือบนเบราว์เซอร์นี้เพื่อเปรียบเทียบ JSON payload สองชุดแบบเห็นภาพอย่างรวดเร็วระหว่างการดีบักหรือรีวิวโค้ด สำหรับการทดสอบ regression แบบอัตโนมัติ, CI pipeline หรือการสร้าง diff ด้วยโปรแกรม ให้ใช้ไลบรารีอย่าง json-diff (npm), deepdiff (Python) หรือการเปรียบเทียบด้วย jq ที่สามารถผนวกเข้ากับชุดทดสอบและสร้างเอาต์พุตแพตช์ที่เครื่องอ่านได้ (รูปแบบ RFC 6902 JSON Patch)