วิธีใช้งาน
- วาง JSON ของคุณลงในกล่อง เปิดไฟล์ หรือกด “ลองตัวอย่าง” เพื่อดูรายงานข้อผิดพลาด
- อ่านผลลัพธ์: ข้อความสีเขียวเมื่อ JSON ถูกต้อง หรือข้อผิดพลาดแรกพร้อมเลขบรรทัด คอลัมน์ และเครื่องหมายใต้จุดที่มีปัญหา
- แก้ไขข้อผิดพลาดตามคำแนะนำ แล้วตรวจสอบอีกครั้ง ผลลัพธ์จะอัปเดตขณะพิมพ์
- สำหรับ JSON ที่ถูกต้อง อ่านค่าสถิติ: ชนิดของ root, จำนวนคีย์, ความลึกของการซ้อน และขนาดเป็นไบต์
วิธีการทำงาน
เครื่องมือตรวจสอบไวยากรณ์ตามมาตรฐาน JSON (RFC 8259 / ECMA-404) โดยใช้ parser JSON ของเบราว์เซอร์เอง ดังนั้นเอกสารที่ผ่านที่นี่จะได้รับการยอมรับโดย JSON.parse ของ JavaScript และ parser ที่เป็นไปตามมาตรฐานในภาษาอื่น ๆ เมื่อการแยกวิเคราะห์ล้มเหลว ตัวตรวจสอบแบบเข้มงวดที่เขียนขึ้นสำหรับเครื่องมือนี้จะอ่านข้อความหนึ่งรอบเพื่อค้นหาจุดผิดแรกพร้อมบรรทัดและคอลัมน์ที่แน่นอน จากนั้นแสดงบรรทัดนั้นพร้อมเครื่องหมาย ^ ใต้จุดที่เกิดปัญหา
คำแนะนำจะเน้นข้อผิดพลาดที่คนมักทำเมื่อเขียน JSON เองหรือคัดลอกจาก JavaScript: เครื่องหมายจุลภาคหลังรายการสุดท้าย, สตริงที่ใช้เครื่องหมายคำพูดเดี่ยว, คีย์ที่ไม่มีเครื่องหมายคำพูด, คอมเมนต์แบบ // หรือ /* */, ค่าเช่น NaN, Infinity หรือ undefined, การขึ้นบรรทัดใหม่ภายในสตริงโดยตรง และการวางเอกสาร JSON สองชุดต่อกัน (เช่นในไฟล์ JSON Lines) จะรายงานเฉพาะข้อผิดพลาดแรกเท่านั้น เนื่องจากข้อผิดพลาดเดียวมักทำให้ทุกอย่างหลังจากนั้นสับสน
เครื่องมือนี้ตรวจสอบเฉพาะไวยากรณ์เท่านั้น ไม่ได้ตรวจสอบกับ JSON Schema จึงไม่สามารถบอกได้ว่าฟิลด์ที่จำเป็นหายไปหรือไม่ และไม่เตือนเกี่ยวกับคีย์ซ้ำ: มาตรฐานอนุญาตให้มีคีย์ซ้ำได้ และ parser ส่วนใหญ่เก็บค่าหลังสุด สถิติจะนับคีย์ในทุกออบเจ็กต์ทุกระดับ ความลึกเท่ากับ 1 สำหรับออบเจ็กต์หรืออาร์เรย์แบบแบน และเพิ่มขึ้นหนึ่งเมื่อมีการซ้อนแต่ละระดับ
ตัวอย่าง
Config ที่คัดลอกจาก JavaScript
{name: 'demo', debug: true,} ผิดที่บรรทัด 1 คอลัมน์ 2 โดยแจ้งว่า “คีย์ของออบเจ็กต์ต้องอยู่ในเครื่องหมายคำพูดคู่” หลังจากใส่เครื่องหมายคำพูดให้คีย์แล้ว การตรวจรอบถัดไปจะชี้ไปที่สตริงที่ใช้เครื่องหมายคำพูดเดี่ยว แล้วจึงชี้ไปที่เครื่องหมายจุลภาคท้ายรายการ
ไฟล์ล็อกที่มีหนึ่งออบเจกต์ต่อบรรทัด
การวางสองบรรทัดเช่น {"id":1} และ {"id":2} จะรายงาน “more content after the end of the JSON value” ที่บรรทัด 2 แต่ละบรรทัดเป็น JSON ที่ถูกต้องในตัวเอง (JSON Lines) แต่เมื่ออยู่ด้วยกันต้องครอบด้วย [ ] และคั่นด้วยเครื่องหมายจุลภาค
ตรวจสอบเพย์โหลด API
การตอบกลับขนาด 2 MB ตรวจสอบเสร็จในพริบตาและแสดง Root type: Array, รายการระดับบนสุด 1,500 รายการ และความลึกของการซ้อน 4 ชั้น เป็นการตรวจสอบคร่าว ๆ ก่อนเขียนโค้ดที่ใช้ข้อมูลนี้
คำถามที่พบบ่อย
เครื่องมือนี้ตรวจสอบกับ JSON Schema หรือไม่
ไม่ใช่ เครื่องมือนี้ตรวจสอบว่าข้อความนั้นเป็น JSON ที่มีรูปแบบถูกต้องเท่านั้น การตรวจสอบฟิลด์ที่จำเป็น ชนิดข้อมูล หรือรูปแบบ ต้องใช้ตัวตรวจสอบ JSON Schema ซึ่งเครื่องมือนี้ไม่มีให้
ทำไมจึงแสดงข้อผิดพลาดเพียงจุดเดียว
หลังพบข้อผิดพลาดทางไวยากรณ์จุดแรก ตัวแยกวิเคราะห์จะไม่สามารถทราบได้ว่าผู้เขียนตั้งใจเขียนอะไร ดังนั้น “ข้อผิดพลาด” ที่พบภายหลังมักเป็นผลต่อเนื่องจากข้อผิดพลาดแรก แก้ปัญหาที่รายงาน แล้วหากมีข้อผิดพลาดถัดไป ระบบจะแสดงทันที
คอมเมนต์หรือจุลภาคท้ายรายการใช้ได้บ้างไหม
ไม่อนุญาตใน JSON แม้รูปแบบอย่าง JSON5 และ JSONC ซึ่งใช้ในไฟล์การตั้งค่าของโปรแกรมแก้ไขข้อความบางตัวจะอนุญาต แต่ตัวแยกวิเคราะห์ JSON มาตรฐานจะปฏิเสธ จึงแสดงเป็นข้อผิดพลาดที่นี่
ค่าเดี่ยว ๆ เช่น 42 หรือ "hello" เป็น JSON ที่ถูกต้องไหม
ใช่ ตั้งแต่ RFC 7159 ค่า JSON ใด ๆ ก็เป็น root ได้ ไม่จำกัดเฉพาะ object และ array เครื่องมือและ API รุ่นเก่าบางตัวอาจยังคาดหวังให้ระดับบนสุดเป็น object หรือ array
ทำไมหมายเลขคอลัมน์จึงต่างจากในเอดิเตอร์ของฉัน
คอลัมน์นับเป็นหน่วยรหัส UTF-16 ตามวิธีที่ JavaScript ใช้นับความยาวสตริง อีโมจิและอักขระหายากบางตัวนับเป็นสองหน่วย ส่วนแท็บนับเป็นหนึ่งคอลัมน์ แม้โปรแกรมแก้ไขข้อความอาจแสดงแท็บให้กว้างกว่านั้น
ความเป็นส่วนตัว
การตรวจสอบทำงานในเบราว์เซอร์ของคุณทั้งหมด JSON ที่คุณวางหรือเปิดจะไม่ถูกอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์