วิธีตรวจสอบ JSON
- วาง JSON หรือเปิดไฟล์ การตรวจสอบจะทำงานอัตโนมัติขณะที่คุณพิมพ์
- ข้อความสีเขียว “JSON ถูกต้อง” พร้อมสถิติหมายความว่าเอกสารถูกต้อง หากไม่ใช่ ให้อ่านข้อความแจ้งข้อผิดพลาด: จะระบุบรรทัด คอลัมน์ และสิ่งที่ควรอยู่ตรงนั้น
- แก้ไขบรรทัดที่ถูกไฮไลต์หรือคลิก ซ่อมแซม แล้วกด จัดรูปแบบ เพื่อให้ผลลัพธ์อ่านง่าย
ข้อผิดพลาด JSON ที่พบบ่อยและวิธีแก้
| ข้อผิดพลาด | ตัวอย่าง | วิธีแก้ |
|---|---|---|
| คอมมาท้าย | [1, 2, ] | ลบคอมมาที่อยู่หน้า ] หรือ } |
| เครื่องหมายคำพูดเดี่ยว | {'name': 'Ada'} | ใช้เครื่องหมายคำพูดคู่: {"name": "Ada"} |
| คีย์ไม่มีเครื่องหมายคำพูด | {name: "Ada"} | ใส่เครื่องหมายคำพูดให้คีย์: {"name": "Ada"} |
| ขาดคอมมา | {"a": 1 "b": 2} | เพิ่มคอมมาระหว่างพร็อพเพอร์ตี |
| คอมเมนต์ | // settings | JSON ไม่มีคอมเมนต์ – ให้ลบออก |
| ขึ้นบรรทัดใหม่ในสตริง | "line 1⏎line 2" | เขียน \n แทนการขึ้นบรรทัดจริง |
| ค่าไม่ถูกต้อง | undefined, NaN, True | ใช้ null ตัวเลข true หรือ false |
| เลขศูนย์นำหน้า | {"zip": 01234} | เขียน 1234 หรือเก็บเป็นข้อความ: "01234" |
| ขาดวงเล็บ | {"a": [1, 2} | ปิด [ ทุกตัวด้วย ] และปิด { ทุกตัวด้วย } |
JSON ที่ถูกต้องต้องเป็นอย่างไร
JSON ถูกกำหนดไว้ใน RFC 8259 เอกสารที่ถูกต้องต้องเป็นไปตามกฎที่เข้มงวดไม่กี่ข้อ:
- มีค่าระดับบนสุดเพียงค่าเดียว ซึ่งมักเป็นอ็อบเจ็กต์
{}หรืออาร์เรย์[] - สมาชิกของอ็อบเจ็กต์คือคู่
"key": valueที่คั่นด้วยคอมมา และคีย์ต้องเป็นสตริงในเครื่องหมายคำพูดคู่เสมอ - สตริงใช้เครื่องหมายคำพูดคู่ และภายในอนุญาตเฉพาะ escape
\" \\ \/ \b \f \n \r \tและ\uXXXX - ตัวเลขเป็นเลขฐานสิบ: ห้ามมีศูนย์นำหน้า ห้ามมีเครื่องหมาย
+ห้ามเป็นเลขฐานสิบหก และห้ามใช้NaNหรือInfinity true,falseและnullต้องเขียนด้วยตัวพิมพ์เล็ก- อนุญาตให้มีช่องว่าง แท็บ และการขึ้นบรรทัดระหว่างโทเคน แต่ห้ามมีคอมเมนต์
ตรวจสอบ JSON บน command line
- Python:
python -m json.tool file.jsonจะแสดงบรรทัดและคอลัมน์ของข้อผิดพลาดแรก - jq:
jq empty file.jsonจะจบการทำงานพร้อมข้อความแจ้งข้อผิดพลาดหากไฟล์ไม่ถูกต้อง - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
คำถามที่พบบ่อย
JSON validator กับ JSON linter ต่างกันอย่างไร?
validator ตรวจสอบว่าข้อความเป็นไปตามไวยากรณ์ของ JSON หรือไม่ ส่วน linter มักบังคับให้ใช้สไตล์ที่สม่ำเสมอด้วย ตัวตรวจสอบ JSON นี้ตรวจอย่างเข้มงวดตาม RFC 8259 และเมื่อใช้ร่วมกับปุ่มจัดรูปแบบ คุณก็จะได้การเยื้องที่สม่ำเสมอด้วย
ตรวจสอบกับ JSON Schema ได้ไหม?
หน้านี้ตรวจสอบไวยากรณ์ หากต้องการอธิบายโครงสร้างที่คาดหวังของข้อมูล ให้สร้าง schema จากเอกสารตัวอย่างด้วยเครื่องมือสร้าง JSON Schema ของเรา
ทำไม JSON ของฉันผ่านที่นี่ แต่โปรแกรมอื่นไม่ยอมรับ?
โปรแกรมมักคาดหวังโครงสร้างเฉพาะ (คีย์หรือชนิดข้อมูลบางอย่าง) การเข้ารหัสเฉพาะ เช่น UTF-8 แบบไม่มี byte order mark หรือตัวเลขที่อยู่ในช่วงจำกัด JSON ที่ถูกต้องตามไวยากรณ์จึงอาจยังขัดกับกฎของแอปพลิเคชันเหล่านั้นได้
JSON ที่มีคอมเมนต์ (JSONC) ถือว่าถูกต้องไหม?
ไม่ JSON มาตรฐานไม่อนุญาตให้มีคอมเมนต์ เอดิเตอร์บางตัวยอมรับคอมเมนต์ในไฟล์ตั้งค่า (JSONC) แต่ API และ JSON.parse ไม่ยอมรับ ปุ่มซ่อมแซมจะลบคอมเมนต์ให้คุณ