tigtools

ตัวตรวจสอบ JSON

วาง JSON เพื่อตรวจสอบไวยากรณ์ตามมาตรฐาน JSON ข้อผิดพลาดจะแสดงตำแหน่งพร้อมเครื่องหมายและคำอธิบายที่เข้าใจง่าย

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

ผลลัพธ์จะแสดงที่นี่ทันทีที่คุณวาง JSON

วิธีใช้งาน

  1. วาง JSON ของคุณลงในกล่อง เปิดไฟล์ หรือกด “ลองตัวอย่าง” เพื่อดูรายงานข้อผิดพลาด
  2. อ่านผลลัพธ์: ข้อความสีเขียวเมื่อ JSON ถูกต้อง หรือข้อผิดพลาดแรกพร้อมเลขบรรทัด คอลัมน์ และเครื่องหมายใต้จุดที่มีปัญหา
  3. แก้ไขข้อผิดพลาดตามคำแนะนำ แล้วตรวจสอบอีกครั้ง ผลลัพธ์จะอัปเดตขณะพิมพ์
  4. สำหรับ 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 ที่คุณวางหรือเปิดจะไม่ถูกอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์