เครื่องมือตรวจสอบ JSON Schema
วางสคีมาและเอกสาร เลือกดราฟต์ แล้วเครื่องมือตรวจสอบจะเทียบเอกสารกับคีย์เวิร์ดทุกตัวที่สคีมาของคุณใช้ ได้แก่ type, required, enum, oneOf, $ref, if/then/else และ format แบบกำหนดเอง จากนั้นรายงานการละเมิดแต่ละรายการพร้อมตัวชี้แบบ JSONPath ที่ระบุตำแหน่งที่เกิดปัญหาได้อย่างแม่นยำ
วิธีตรวจสอบเทียบกับสคีมา
-
1
วางสคีมา
JSON Schema ดราฟต์ 04, 07 หรือ 2020-12 โดยคีย์เวิร์ด `$schema` (หากมี) จะเลือกดราฟต์ที่เกี่ยวข้องให้โดยอัตโนมัติ
-
2
วางเอกสาร
JSON ที่คุณต้องการตรวจสอบ ต้องเป็น JSON ที่ถูกต้องก่อน โดยข้อผิดพลาดด้านไวยากรณ์จะแสดงขึ้นก่อนการประเมินสคีมา
-
3
ตรวจสอบ
การละเมิดแต่ละรายการจะถูกรายงานพร้อมตัวชี้แบบ JSON (`/user/email`) และคีย์เวิร์ดที่ล้มเหลว (เช่น `format`, `required` ฯลฯ)
-
4
แก้ไขและตรวจสอบใหม่
แก้ไขด้านใดด้านหนึ่ง แล้วสถานะจะอัปเดตแบบเรียลไทม์
คีย์เวิร์ดที่รองรับ
แกนหลัก: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired
การประกอบ: allOf, anyOf, oneOf, not
ตัวปรับใช้: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames
เงื่อนไข: if, then, else, dependentSchemas
การอ้างอิง: $ref, $defs, $id, $anchor
รูปแบบ (พร้อมการตรวจสอบเมื่อเปิดใช้งาน): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex
ผลลัพธ์ข้อผิดพลาด
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
ข้อผิดพลาดแต่ละรายการจะระบุทั้งเส้นทางและคีย์เวิร์ดที่ล้มเหลว ทำให้ค้นหาได้อย่างรวดเร็วในโปรแกรมแก้ไขของคุณ
ความแตกต่างระหว่างดราฟต์ที่มักทำให้พลาด
| คีย์เวิร์ด | ดราฟต์ 04 | ดราฟต์ 07 | ดราฟต์ 2020-12 |
|---|---|---|---|
id เทียบกับ $id |
id |
$id |
$id |
exclusiveMaximum เป็นค่า bool |
ใช่ | ตัวเลข | ตัวเลข |
ไวยากรณ์อาร์เรย์ items |
items |
items |
prefixItems |
$ref อนุญาตคีย์เวิร์ดข้างเคียง |
ไม่ | ไม่ | ใช่ |
ตั้งค่าดราฟต์ให้ถูกต้อง การตรวจสอบสคีมาดราฟต์ 04 ในฐานะดราฟต์ 2020-12 จะทำให้ตีความ id และรายละเอียดปลีกย่อยอื่นๆ ผิดพลาด
เวิร์กโฟลว์ทั่วไป
- การทดสอบสัญญา API: ก่อนการดีพลอย ให้รันสคีมา OpenAPI ที่สร้างหรืออัปเดตแล้วเทียบกับการตอบสนองตัวอย่างจริง
- การเสริมความแข็งแกร่งให้การกำหนดค่า: ตรวจสอบไฟล์กำหนดค่า YAML/JSON ทุกไฟล์ในขั้นตอน CI เทียบกับสคีมาก่อนการรวมโค้ด
- การรับข้อมูลเข้า: ปฏิเสธเพย์โหลดที่ไม่ตรงกับรูปแบบที่คาดไว้ตั้งแต่ต้น พร้อมข้อความแจ้งข้อผิดพลาดที่ชัดเจน
ข้อผิดพลาดที่พบบ่อย
- ลืมบังคับใช้
formatโดยค่าเริ่มต้น เครื่องมือตรวจสอบส่วนใหญ่จะถือว่ารูปแบบที่ไม่รู้จักเป็นเพียงคำอธิบายประกอบเท่านั้น หากต้องการปฏิเสธอีเมลและวันที่ที่ไม่ถูกต้องจริงๆ ให้เปิดใช้การตรวจสอบรูปแบบอย่างเข้มงวด - ใช้
oneOfมากเกินไป หากสองสาขาของoneOfทับซ้อนกัน เอกสารจะล้มเหลว (ต้องตรงกับเพียงสาขาเดียวเท่านั้น) ให้ใช้anyOfหรือรูปแบบตัวจำแนกแทน - สคีมาที่เข้มงวดด้วย
additionalProperties: falseการเพิ่มฟิลด์ทางเลือกใหม่จะกลายเป็นการเปลี่ยนแปลงที่ทำลายความเข้ากันได้ ควรละเว้นไว้ เว้นแต่คุณต้องการอ็อบเจ็กต์แบบปิดจริงๆ
คำถามที่พบบ่อย
รองรับ ทั้งดราฟต์ 2020-12, 07 และ 04 ได้รับการรองรับทั้งหมด เครื่องมือตรวจสอบจะอ่านคีย์เวิร์ด $schema จากเอกสารของคุณเพื่อเลือกตัวที่ถูกต้อง หรือย้อนกลับไปใช้ตัวเลือกในอินเทอร์เฟซผู้ใช้
รูปแบบมาตรฐาน (email, date-time, uuid, ipv4 ฯลฯ) จะถูกตรวจสอบเมื่อเปิดใช้การตรวจสอบรูปแบบอย่างเข้มงวด ส่วนรูปแบบที่กำหนดเองซึ่งประกาศไว้ในสคีมาของคุณจะถูกถือเป็นเพียงคำอธิบายประกอบเท่านั้น เว้นแต่คุณจะระบุ regex ด้วย pattern
การอ้างอิงภายใน (#/$defs/foo) จะถูกแก้ไขโดยอัตโนมัติ ส่วนการอ้างอิงผ่าน HTTP จากภายนอกจะไม่ถูกดึงมาโดยค่าเริ่มต้นเพื่อความปลอดภัย ให้ฝังการอ้างอิงภายนอกแบบอินไลน์เสียก่อน หรือใช้เครื่องมือเฉพาะที่รองรับการแก้ไข $ref จากระยะไกล
ใช่ ทั้งสคีมาและเอกสารจะคงอยู่ในเครื่องของคุณ เนื้อหาที่วางจะไม่ถูกอัปโหลดออกไปเลย จึงปลอดภัยสำหรับสัญญา API ภายในองค์กรและข้อมูลที่ละเอียดอ่อน
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- JSON-Schema-Validator [DE]
- Penentu Struktur JSON [ID]
- Walidator JSON Schema [PL]
- Trình xác thực JSON Schema [VI]
- Validador de JSON Schema [PT]
- JSONスキーマバリデーター [JA]
- JSON Schema-validator [SV]
- Validador de JSON Schema [ES]
- أداة التحقق من مخطط JSON [AR]
- JSON 스키마 검증기 [KO]
- Validateur de schéma JSON [FR]
- JSON Schema-validator [NL]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]