ToolDeck

ตรวจสอบ JSON

ตรวจสอบไวยากรณ์และโครงสร้าง JSON

ลองตัวอย่าง
ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ

การตรวจสอบ JSON คืออะไร?

การตรวจสอบ JSON คือกระบวนการตรวจสอบว่าสตริงข้อความสอดคล้องกับข้อกำหนด JSON หรือไม่ เอกสาร JSON ที่ถูกต้องมีไวยากรณ์ที่ถูกต้อง: สตริงที่มีเครื่องหมายคำพูดอย่างถูกต้อง ไม่มีเครื่องหมายจุลภาคท้าย ไม่มีความคิดเห็น และมีองค์ประกอบรากเพียงหนึ่งเดียว การตรวจสอบบอกคุณทันทีว่า JSON สามารถแยกวิเคราะห์ได้หรือไม่ และหากไม่ได้ จะระบุตำแหน่งของปัญหาได้อย่างแม่นยำ

JSON ที่ถูกต้อง
json
{
  "user": "alice",
  "age": 30,
  "active": true,
  "tags": ["admin", "editor"]
}
JSON ที่ไม่ถูกต้อง — เครื่องหมายจุลภาคท้าย
json
{
  "user": "alice",
  "age": 30,
}

ทำไมต้องตรวจสอบ JSON?

JSON ที่ไม่ถูกต้องจะทำลาย API ตัวโหลดการกำหนดค่า และไปป์ไลน์ข้อมูลอย่างเงียบๆ เครื่องหมายจุลภาคที่วางผิดที่เพียงตัวเดียวอาจทำให้แอปพลิเคชันทั้งหมดไม่สามารถเริ่มต้นได้ การตรวจจับข้อผิดพลาดเหล่านี้ในระหว่างการพัฒนา ไม่ใช่ในระบบการผลิต คือความแตกต่างระหว่างการเปิดตัวที่ราบรื่นและการหยุดชะงัก

📍
ระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ
ตัวตรวจสอบไม่เพียงบอกว่า JSON ไม่ถูกต้อง แต่ยังระบุบรรทัดและคอลัมน์ที่แน่นอนที่เกิดข้อผิดพลาด เพื่อให้คุณข้ามไปยังปัญหาได้โดยตรง
ตรวจสอบขณะพิมพ์
การตรวจสอบแบบเรียลไทม์ให้ข้อเสนอแนะทันทีขณะแก้ไข คุณจะเห็นข้อผิดพลาดหายไปเมื่อแก้ไข โดยไม่จำเป็นต้องคลิกปุ่ม
🔍
แยกแยะไวยากรณ์จากตรรกะ
การตรวจสอบ JSON ตรวจจับเฉพาะข้อผิดพลาดทางไวยากรณ์เท่านั้น โดยยืนยันว่าเอกสารสามารถแยกวิเคราะห์ได้ แยกออกจากว่าค่าต่างๆ ถูกต้องในเชิงความหมายสำหรับแอปพลิเคชันของคุณหรือไม่
🔒
ความเป็นส่วนตัวโดยการออกแบบ
การตรวจสอบทั้งหมดทำงานในเบราว์เซอร์ของคุณ ข้อมูลรับรองตัวตน คีย์ API และข้อมูลที่ละเอียดอ่อนจะไม่ถูกส่งไปยังเซิร์ฟเวอร์

ข้อผิดพลาดการตรวจสอบ JSON ทั่วไป

ความผิดพลาดสี่ประการนี้คิดเป็นส่วนใหญ่ของความล้มเหลวในการตรวจสอบ JSON:

เครื่องหมายจุลภาคท้าย
เครื่องหมายจุลภาคหลังรายการสุดท้ายในออบเจกต์หรืออาร์เรย์ ถูกต้องใน JavaScript แต่ถูกห้ามอย่างเคร่งครัดใน JSON
json
{ "a": 1, "b": 2, }
สตริงที่มีเครื่องหมายอัญประกาศเดี่ยว
เครื่องหมายอัญประกาศเดี่ยวไม่ถูกต้องใน JSON ทั้งคีย์และค่าต้องใช้เครื่องหมายอัญประกาศคู่
json
{ 'key': 'value' }
Undefined และ NaN
undefined, NaN และ Infinity เป็นค่าใน JavaScript แต่ไม่ใช่ JSON ที่ถูกต้อง ใช้ null หรือสตริงตัวเลขแทน
json
{ "val": undefined }
คีย์ที่ไม่มีเครื่องหมายอัญประกาศ
JSON กำหนดให้คีย์ของออบเจกต์ทั้งหมดต้องเป็นสตริงในเครื่องหมายอัญประกาศคู่ ตัวระบุที่ไม่มีเครื่องหมายอัญประกาศเหมือนในออบเจกต์ JavaScript ไม่ได้รับอนุญาต
json
{ key: "value" }

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

การตรวจสอบสัญญา API
ตรวจสอบเนื้อหาคำขอและการตอบสนองตามรูปแบบที่คาดหวัง เพื่อตรวจจับบักการรวมระบบก่อนที่จะถึงระบบการผลิต
QA ไฟล์คอนฟิก
ตรวจสอบ package.json, tsconfig.json และไฟล์คอนฟิกอื่นๆ ก่อน commit เพื่อให้แน่ใจว่าถูกแยกวิเคราะห์อย่างถูกต้อง
การตรวจสอบไปป์ไลน์ข้อมูล
ตรวจสอบว่าข้อมูลที่นำเข้าจากแหล่งภายนอกหรือการอัปโหลดของผู้ใช้ถูกต้องในเชิงไวยากรณ์ก่อนการประมวลผล
การตรวจสอบก่อน CI/CD
เรียกใช้การตรวจสอบ JSON เป็นขั้นตอน build เพื่อป้องกันการปรับใช้ไฟล์คอนฟิกที่ไม่ถูกต้อง
การเรียนรู้และการดีบัก
ใช้ตัวตรวจสอบเป็นเครื่องมือเรียนรู้เพื่อทำความเข้าใจว่าทำไมรูปแบบไวยากรณ์ JSON เฉพาะจึงถูกต้องหรือไม่
QA JSON ที่สร้างขึ้น
ตรวจสอบว่า JSON ที่ผลิตโดยตัวสร้างโค้ด เทมเพลต หรือซีเรียลไลเซอร์ถูกสร้างขึ้นอย่างถูกต้องก่อนใช้งาน

คำถามที่พบบ่อย

ความแตกต่างระหว่างการตรวจสอบ JSON และการตรวจสอบ JSON Schema คืออะไร?
การตรวจสอบ JSON (สิ่งที่เครื่องมือนี้ทำ) ตรวจสอบไวยากรณ์ ว่าเอกสารเป็น JSON ที่สามารถแยกวิเคราะห์ได้หรือไม่ การตรวจสอบ JSON Schema เป็นขั้นตอนแยกต่างหากที่ตรวจสอบว่าค่าต่างๆ สอดคล้องกับโครงสร้าง ประเภท และข้อจำกัดที่กำหนดไว้หรือไม่
JSON5 หรือ JSONC เป็น JSON ที่ถูกต้องหรือไม่?
ไม่ JSON5 (อนุญาตเครื่องหมายอัญประกาศเดี่ยว ความคิดเห็น เครื่องหมายจุลภาคท้าย) และ JSONC (อนุญาตความคิดเห็น) เป็นเซตที่ครอบคลุม JSON แต่ไม่ใช่ JSON มาตรฐานที่ถูกต้อง เครื่องมือนี้ตรวจสอบตามข้อกำหนด JSON ที่เข้มงวด (RFC 8259)
ทำไม JSON ของฉันล้มเหลวในการแยกวิเคราะห์แม้จะดูถูกต้อง?
สาเหตุที่มองไม่เห็นที่พบบ่อยที่สุดคือ: เครื่องหมายจุลภาคท้ายหลังคุณสมบัติสุดท้าย เครื่องหมายลำดับไบต์ (BOM) ที่ต้นไฟล์ หรือสตริงที่มีเครื่องหมายอัญประกาศเดี่ยว วาง JSON ลงในตัวตรวจสอบเพื่อระบุตำแหน่งที่แน่นอน
JSON มีความคิดเห็นได้หรือไม่?
ไม่ ข้อกำหนด JSON (RFC 8259) ห้ามความคิดเห็นอย่างชัดเจน หากต้องการความคิดเห็นในไฟล์คอนฟิก ให้ใช้ JSONC หรือ JSON5 ในเครื่อง จากนั้นลบความคิดเห็นก่อนทำการซีเรียลไลซ์
ค่ารากของ JSON ที่ถูกต้องคืออะไร?
ค่า JSON ใดก็ตามสามารถเป็นรากได้: ออบเจกต์ {} อาร์เรย์ [] สตริง ตัวเลข true, false หรือ null ในทางปฏิบัติ API ส่วนใหญ่ใช้ออบเจกต์หรืออาร์เรย์ที่ราก แต่ทั้งหกประเภทถูกต้องในเชิงไวยากรณ์