Guide 27 Mar 2026 12 นาทีในการอ่าน

การตรวจสอบ JSON Schema: คู่มือฉบับสมบูรณ์สำหรับการกำหนดและตรวจสอบข้อมูล JSON

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

JSON Schema Validation Guide

JSON Schema คืออะไร?

JSON Schema เป็นภาษาประกาศที่ช่วยให้คุณอธิบายโครงสร้าง เนื้อหา และข้อจำกัดของเอกสาร JSON คิดว่ามันเป็นสัญญาระหว่างผู้ผลิตและผู้บริโภคข้อมูล ผู้ผลิตบอกว่า "ฉันจะส่งอ็อบเจกต์ที่มีสตริง name และจำนวนเต็ม age เสมอ" และผู้บริโภคสามารถตรวจสอบว่า payload ที่เข้ามาทุกรายการตรงตามสัญญานั้นจริงก่อนประมวลผล

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

ทำไม JSON Schema จึงสำคัญสำหรับ API

REST API สื่อสารผ่าน JSON payload และทุก endpoint มีรูปร่างโดยนัย JSON Schema ทำให้รูปร่างนั้นชัดเจนและอ่านได้โดยเครื่อง เมื่อคุณมีสคีมา คุณสามารถ:

  • ตรวจสอบคำขอ บนเซิร์ฟเวอร์ก่อนที่จะถึงตรรกะทางธุรกิจของคุณ
  • ตรวจสอบการตอบกลับ ในการทดสอบแบบบูรณาการเพื่อจับการเปลี่ยนแปลงที่ทำลาย
  • สร้างเอกสารอัตโนมัติ -- เครื่องมืออย่าง Swagger/OpenAPI ใช้ JSON Schema เป็นแกนหลัก
  • สร้างโค้ด -- เครื่องมือแปลงสคีมาเป็น TypeScript, Go struct, Python dataclass ขจัดการกำหนดประเภทด้วยตนเอง
ข้อมูลสำคัญ: JSON Schema ไม่ใช่แค่เครื่องมือตรวจสอบ มันเป็นแหล่งความจริงเดียวที่ขับเคลื่อนเอกสาร การสร้างโค้ด การทดสอบ และการตรวจสอบขณะทำงาน -- ทั้งหมดจากไฟล์เดียว

พื้นฐาน JSON Schema

JSON Schema ทุกตัวเป็นอ็อบเจกต์ JSON สคีมาที่ง่ายที่สุดคืออ็อบเจกต์ว่าง {} ซึ่งยอมรับ JSON ที่ถูกต้องทุกประเภท

ประเภทพื้นฐาน

คีย์เวิร์ด type เป็นรากฐาน JSON Schema รู้จักประเภทพื้นฐานหกประเภท:

ประเภท ตัวอย่าง JSON หมายเหตุ
string"สวัสดี"ค่าข้อความ จำกัดได้ด้วย minLength, maxLength, pattern
number3.14ค่าตัวเลขใดๆ ใช้ minimum, maximum, multipleOf
integer42จำนวนเต็มเท่านั้น ข้อจำกัดเดียวกับ number
booleantrueเฉพาะ true หรือ false
object{"คีย์": "ค่า"}คู่คีย์-ค่า กำหนดด้วย properties, required, additionalProperties
array[1, 2, 3]รายการลำดับ ใช้ items, minItems, maxItems, uniqueItems
nullnullการไม่มีค่า มักรวมกับประเภทอื่น

คุณสมบัติและฟิลด์บังคับ

คีย์เวิร์ด properties กำหนดว่าคีย์ใดที่คาดหวัง คีย์เวิร์ด required ระบุว่าตัวใดต้องมี

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  },
  "required": ["name", "email"]
}

ควบคุมคุณสมบัติเพิ่มเติม

"additionalProperties": false ทำให้สคีมาเข้มงวด -- อนุญาตเฉพาะคีย์ที่ระบุไว้เท่านั้น

ระวัง: หากคุณใช้ additionalProperties: false ร่วมกับคีย์เวิร์ดการรวมอย่าง allOf คุณสมบัติที่กำหนดในซับสคีมาอื่นอาจถูกปฏิเสธ

การตรวจสอบรูปแบบ

คีย์เวิร์ด format ให้การตรวจสอบเชิงความหมายที่เกินกว่าประเภทพื้นฐาน

รูปแบบในตัว

รูปแบบ ตัวอย่างค่า กรณีใช้งาน
date-time2026-03-27T10:30:00Zประทับเวลา ISO 8601 สำหรับเหตุการณ์และบันทึก
date2026-03-27วันที่ปฏิทินไม่มีเวลา
email[email protected]แบบฟอร์มติดต่อ การลงทะเบียนผู้ใช้
urihttps://example.com/apiURL webhook ลิงก์ทรัพยากร
uuid550e8400-e29b-41d4-a716-446655440000ตัวระบุเฉพาะ คีย์หลัก
ipv4192.168.1.1การตั้งค่าเครือข่าย ที่อยู่เซิร์ฟเวอร์

รูปแบบเป็นคำอธิบาย vs การยืนยัน

โดยค่าเริ่มต้น format เป็นคำอธิบาย ไม่ใช่การยืนยัน ใน Draft 2020-12 คุณต้องเปิดใช้งานการยืนยันรูปแบบอย่างชัดเจน

เคล็ดลับปฏิบัติ: รวม format กับ regex pattern เสมอหากการตรวจสอบอย่างเข้มงวดมีความสำคัญ

เวอร์ชันร่าง: Draft-07 vs 2020-12

สองเวอร์ชันที่คุณจะพบบ่อยที่สุดคือ Draft-07 และ Draft 2020-12

ความแตกต่างหลัก

คุณสมบัติ Draft-07 Draft 2020-12
prefixItemsไม่มีแทนที่การตรวจสอบ tuple
$dynamicRefไม่มีใหม่ -- การอ้างอิงสคีมาแบบไดนามิก
unevaluatedPropertiesไม่มีแก้ปัญหา additionalProperties + allOf
การสนับสนุนไลบรารียอดเยี่ยมดีและเติบโต

ควรเลือกเวอร์ชันไหน?

เลือก Draft-07 หากระบบนิเวศของคุณใช้อยู่แล้วหรือต้องการความเข้ากันได้สูงสุด

เลือก Draft 2020-12 หากเริ่มโปรเจกต์ใหม่ที่ไม่มีข้อจำกัดเดิม

สรุป

สำหรับโปรเจกต์ใหม่ส่วนใหญ่ในปี 2026 Draft 2020-12 เป็นตัวเลือกเริ่มต้นที่ดีกว่า

วิธีใช้เครื่องมือสร้าง JSON Schema ของเรา

เครื่องมือสร้าง JSON Schema ฟรีของเรารับ JSON payload ใดก็ได้และสร้างสคีมาที่ถูกต้องโดยอัตโนมัติ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ

คู่มือทีละขั้นตอน

  1. เปิดเครื่องมือ เครื่องมือสร้าง JSON Schema
  2. วาง JSON ของคุณ ลงในพื้นที่ป้อนข้อมูล
  3. คลิกสร้าง แล้วเครื่องมือจะวิเคราะห์ทุกฟิลด์ อนุมานประเภท และตรวจจับรูปแบบ
  4. ตรวจสอบผลลัพธ์ -- สคีมาที่สร้างจะปรากฏในแผงผลลัพธ์
  5. สลับไปที่แท็บตรวจสอบ เพื่อทดสอบสคีมากับ JSON payload ใหม่
  6. คัดลอกสคีมา ด้วยคลิกเดียวและรวมเข้ากับโปรเจกต์ของคุณ
หมายเหตุเรื่องความเป็นส่วนตัว

เครื่องมือสร้าง JSON Schema ของเราทำงาน 100% ในเบราว์เซอร์ของคุณ ข้อมูล JSON สคีมาที่สร้าง และผลการตรวจสอบจะไม่ออกจากอุปกรณ์ของคุณเด็ดขาด

สร้าง JSON Schema ของคุณทันที

วาง JSON payload ใดก็ได้ แล้วรับสคีมาพร้อมใช้งานพร้อมการอนุมานประเภท ฟิลด์บังคับ และการตรวจจับรูปแบบ -- 100% ในเบราว์เซอร์ของคุณ