เครื่องมือสร้าง JSON Schema

อนุมาน JSON Schema Draft 2020-12 จากตัวอย่าง JSON

ตัวอย่าง JSON

วางตัวอย่าง JSON หรือโหลดตัวอย่างเพื่อสร้างสคีมา
JSON Schema Generator ทำอะไรได้

เครื่องมือนี้อ่าน JSON ตัวอย่างแล้วเขียนเอกสาร JSON Schema Draft 2020-12 ที่มี URI "$schema" เป็น https://json-schema.org/draft/2020-12/schema ออบเจกต์ที่ซ้อนกันจะกลายเป็น properties ที่ซ้อนกัน array จะได้สคีมา items จำนวนเต็มเป็นชนิด integer และตัวเลขอื่นเป็น number ส่วนฟิลด์ที่เป็น null ได้จะใช้รายการชนิดอย่าง ["string", "null"] เมื่อออบเจกต์หรือ array อยู่ตำแหน่งเดียวกับชนิดอื่น สคีมาจะใช้ anyOf ที่มีหนึ่งสาขาต่อหนึ่งชนิด array ที่ปนหลายชนิดจึงไม่ทำให้การสร้างล้มเหลว

วิธีใช้
  1. 1.วางตัวอย่าง JSON อัปโหลดหรือลากไฟล์ .json หนึ่งไฟล์มาวาง หรือโหลดตัวอย่าง array ที่มีหลายเรคคอร์ดให้ผลแม่นยำที่สุด
  2. 2.สคีมาจะอัปเดตขณะพิมพ์ ส่วนอินพุตที่ใหญ่กว่า 2 MB จะรอให้กดสร้างสคีมา
  3. 3.ใส่ชื่อสคีมาได้ตามต้องการ แล้วเลือกตรวจหารูปแบบ ใส่ตัวอย่าง อนุมานฟิลด์ที่จำเป็น และอนุมาน enum
  4. 4.อ่านบันทึกการอนุมานเกี่ยวกับฟิลด์ที่ไม่บังคับ ฟิลด์ที่มีแต่ null ชนิดที่ปนกัน และ enum
  5. 5.เลือกตรวจสอบตัวอย่าง จากนั้นคัดลอกสคีมาหรือดาวน์โหลด schema.json
ตัวเลือกทำงานอย่างไร

ฟิลด์ที่จำเป็นคือคีย์ที่มีอยู่ในทุกออบเจกต์ที่พบในตำแหน่งนั้น ดังนั้นใน array ของเรคคอร์ด คีย์ที่ขาดไปแม้ในเรคคอร์ดเดียวจะยังไม่บังคับ ออบเจกต์เดียวไม่อาจบอกได้ว่าคีย์ใดไม่บังคับ และเครื่องมือจะแจ้งเรื่องนี้ รูปแบบ (email, uri, date-time, date, time, uuid, ipv4) จะเพิ่มก็ต่อเมื่อทุกสตริงในตำแหน่งนั้นตรงกับรูปแบบเดียวกันทุกตัว การปิดการตรวจหาจะลบคีย์เวิร์ด format ทั้งหมด enum ปิดไว้เป็นค่าเริ่มต้น และอนุมานเฉพาะข้อความที่ซ้ำและมีค่าต่างกันไม่มาก ซึ่งไม่ใช่ ID ค่าที่มีรูปแบบ หรือข้อความอิสระ โดยจะรวมทุกค่าจากตัวอย่างเสมอ

การตรวจสอบ ข้อจำกัด และความเป็นส่วนตัว

ตรวจสอบตัวอย่างจะคอมไพล์สคีมาด้วย Ajv ในโหมด strict ของ Draft 2020-12 ร่วมกับ ajv-formats แล้วตรวจตัวอย่างของคุณ พร้อมแสดง JSON Pointer และกฎของทุกจุดที่ไม่ผ่าน สคีมาที่อนุมานจากตัวอย่างอธิบายได้เฉพาะสิ่งที่ตัวอย่างแสดง ออบเจกต์ยังยอมรับคีย์เพิ่มเติม และไม่เดาช่วงค่า รูปแบบข้อความ หรือความยาว ตัวเลขที่เกินความแม่นยำของ JavaScript ยังได้ชนิดที่ถูกต้องแต่จะไม่ถูกใช้เป็นตัวอย่าง ทุกอย่างทำงานในเบราว์เซอร์ของคุณ และตัวตรวจสอบจะโหลดเมื่อคุณสั่งเท่านั้น

CodingTool เปิดตัวอย่างเป็นทางการบน

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch