เครื่องมือ
TH

JSON Schema Generator – สร้าง Schema จาก JSON

วางตัวอย่างเอกสาร JSON แล้วรับ JSON Schema ที่อธิบายโครงสร้างนั้น – ทั้งชนิดข้อมูล พร็อพเพอร์ตีที่จำเป็น (required) อ็อบเจ็กต์และอาร์เรย์ที่ซ้อนกัน และ format ของสตริง เช่น email, date-time หรือ UUID

ตัวอย่าง JSON

JSON Schema

เป็นส่วนตัว: ข้อมูลของคุณถูกประมวลผลในเบราว์เซอร์ และไม่มีการอัปโหลดไปที่ใดเลย

วิธีสร้าง JSON Schema

  1. วางตัวอย่าง JSON ที่เป็นตัวแทนของข้อมูลจริง อาร์เรย์ที่มีหลายรายการจะให้ผลดีที่สุด เพราะรายการทั้งหมดจะถูกรวมเป็น schema เดียว
  2. เลือกเวอร์ชันของ schema (draft 2020-12 หรือ draft-07) และเลือกว่าจะกำหนดพร็อพเพอร์ตีเป็น required ตรวจจับ format และไม่อนุญาตพร็อพเพอร์ตีเพิ่มเติมหรือไม่
  3. คัดลอกหรือดาวน์โหลด schema แล้วปรับแต่งเพิ่มเติมด้วยตัวเอง – เช่น เพิ่มคำอธิบาย enum หรือค่าต่ำสุดและสูงสุด

สิ่งที่ JSON Schema Generator อนุมานให้

ตัวอย่าง JSONSchema
"ada@example.com"{"type": "string", "format": "email"}
"2026-05-01T10:00:00Z"format date-time (รวมถึง date, time, uri, uuid, ipv4)
42 / 4.5"integer" / "number"
คีย์ที่มีอยู่ในทุกอ็อบเจ็กต์อยู่ในรายการ required
คีย์ที่ไม่มีในบางรายการของอาร์เรย์ไม่บังคับ (ไม่อยู่ใน required)
[1, "a", null]"items": {"type": ["string", "integer", "null"]}
อ็อบเจ็กต์ที่ปนกับค่าธรรมดาanyOf โดยแยกหนึ่ง schema ต่อแต่ละชนิด

JSON Schema คืออะไร?

JSON Schema คือชุดคำศัพท์สำหรับอธิบายและตรวจสอบโครงสร้างของข้อมูล JSON: มีพร็อพเพอร์ตีใดบ้าง แต่ละตัวเป็นชนิดอะไร ตัวไหนจำเป็น และอนุญาตค่าอะไรบ้าง ใช้สำหรับกำหนดสัญญา API ใน OpenAPI ไฟล์คอนฟิก การสร้างฟอร์ม และการตรวจสอบเอาต์พุตแบบมีโครงสร้างจากโมเดล AI เวอร์ชันปัจจุบันคือ 2020-12 ส่วน draft-07 ยังได้รับการรองรับในเครื่องมือรุ่นเก่าหลายตัว ข้อกำหนดฉบับเต็มเผยแพร่อยู่ที่ json-schema.org

ปรับแต่ง schema ที่สร้างขึ้น

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

ควรใช้ JSON Schema เวอร์ชันไหน?

ใช้ draft 2020-12 สำหรับโปรเจกต์ใหม่ – เป็นเวอร์ชันปัจจุบันและเป็นพื้นฐานของ OpenAPI 3.1 เลือก draft-07 หาก validator หรือเครื่องมือของคุณยังไม่รองรับ 2020-12

ทำไมพร็อพเพอร์ตีทั้งหมดถึงเป็น required?

เมื่อมีอ็อบเจ็กต์ตัวอย่างเพียงตัวเดียว ทุกพร็อพเพอร์ตีจะปรากฏอยู่ จึงถูกกำหนดเป็น required ทั้งหมด ให้ใช้อาร์เรย์ที่มีตัวอย่างหลากหลายหลายรายการ หรือปิดตัวเลือก กำหนดพร็อพเพอร์ตีเป็น required

Generator ตรวจจับ enum หรือช่วงค่าได้ไหม?

ไม่ได้ ตัวอย่างเพียงชุดเดียวไม่สามารถบอกได้ว่าโดยทั่วไปอนุญาตค่าอะไรบ้าง ดังนั้น enum ค่าต่ำสุดและสูงสุด และ pattern ต้องเพิ่มด้วยตัวเอง

ตรวจสอบ JSON กับ schema ได้อย่างไร?

ใช้ไลบรารี validator เช่น Ajv สำหรับ JavaScript หรือ jsonschema สำหรับ Python นอกจากนี้โค้ดเอดิเตอร์หลายตัวยังตรวจสอบไฟล์ JSON กับ schema ที่อ้างอิงในพร็อพเพอร์ตี $schema ให้ด้วย