JSON คืออะไร Format Validate และแก้ Error อย่างมือโปร
🛠️ JSON เป็น format ที่ developer ทุกคนต้องจัดการทุกวัน บทความนี้รวมทุกอย่างตั้งแต่ syntax rules จนถึงวิธีแก้ error ที่พบบ่อยที่สุด
JSON คืออะไร ทำไมถึงเป็น format ยอดนิยม
JSON (JavaScript Object Notation) คือ format สำหรับแลกเปลี่ยนข้อมูลที่เป็นข้อความ (text-based) อ่านได้ทั้งมนุษย์และคอมพิวเตอร์ Douglas Crockford กำหนดสเปคในช่วงต้นปี 2000 และกลายเป็น standard ของ Web API ในปัจจุบัน
เหตุผลที่ JSON ชนะ XML: กระทัดรัดกว่า 30–40%, parse ง่ายกว่า, รองรับทุก programming language และ syntax ตรงกับ JavaScript object โดยตรง ใช้ใน REST API, config files (package.json, tsconfig.json), localStorage, database (MongoDB), และอื่นๆ อีกมาก
โครงสร้าง JSON ที่ถูกต้อง — 6 data types
JSON รองรับ data type เพียง 6 ชนิด:
- String: ต้องใช้ double quotes เท่านั้น:
"สวัสดี" - Number: integer หรือ float:
42,3.14 - Boolean: ตัวพิมพ์เล็ก:
true/false - Null: ตัวพิมพ์เล็ก:
null - Array: รายการในวงเล็บเหลี่ยม:
[1, 2, 3] - Object: key-value ในวงเล็บปีกกา:
{"name": "สมชาย"}
{
"userId": 1001,
"name": "สมชาย ใจดี",
"isActive": true,
"score": 95.5,
"tags": ["dev", "thai"],
"address": null
}
ข้อผิดพลาดที่พบบ่อยและวิธีแก้
{"name": "สมชาย", "age": 30} ← ถูก
{"name": "สมชาย"} ← ถูก
{"value": null} ← ถูก (ใช้ null แทน)
ใช้ JSON Formatter & Validator เพื่อ paste JSON เข้าไปและตรวจสอบ error พร้อม highlight จุดที่ผิดได้ทันที
Pretty Print vs Minify — ใช้เมื่อไหร่
Pretty Print (มี whitespace + indent) ใช้สำหรับอ่านและ debug ทำให้เห็นโครงสร้างชัดเจน แต่ file size ใหญ่กว่า
Minify (ลบ whitespace ทั้งหมด) ใช้สำหรับ production เพื่อลด payload size ใน API response JSON 10 KB อาจลดเหลือ 7 KB หลัง minify ช่วยให้ response เร็วขึ้น
ใน production API ควร minify และใช้ gzip compression ร่วมกัน ลด size ได้อีก 70–90% JSON 100 KB → gzip → ประมาณ 10–20 KB
JSON Schema — Validate โครงสร้างก่อนใช้งาน
JSON Schema คือ JSON ที่ใช้กำหนดโครงสร้างของ JSON อื่น ช่วย validate ว่า API response มีครบทุก field และ type ถูกต้องก่อนนำไปประมวลผล ป้องกัน runtime error ที่น่าปวดหัว
ตัวอย่าง schema สำหรับ user object:
"type": "object",
"required": ["userId", "name"],
"properties": {
"userId": { "type": "integer" },
"name": { "type": "string", "minLength": 1 }
}
}
คำถามที่พบบ่อย
🔧 Format และ Validate JSON ออนไลน์
Paste JSON เข้าไป ระบบจะ validate ทันที แสดง error ที่จุดที่ผิด และ format ให้อ่านง่ายหรือ minify ให้กระทัดรัด
เปิด JSON Formatter →