logo
GeekFormat

ตัวตรวจสอบ JSON Schema

คำแนะนำที่เกี่ยวข้อง

คุณสมบัติ

  • การตรวจสอบมาตรฐาน Draft-07: ปฏิบัติตามข้อกำหนด JSON Schema Draft-07 อย่างสมบูรณ์ รองรับการตรวจสอบกฎพื้นฐานอย่างครอบคลุมรวมถึงประเภท ช่องที่ต้องกรอก คุณสมบัติ regex รูปแบบ และ enum
  • ตรรกะการรวมที่ทรงพลัง: รองรับคำสำคัญการรวมขั้นสูงเช่น allOf, anyOf, oneOf, not — จัดการโครงสร้างซ้อนกันที่ซับซ้อนและสถานการณ์การตรวจสอบหลายข้อจำกัดได้อย่างง่ายดาย
  • การระบุตำแหน่งข้อผิดพลาดที่แม่นยำ: ให้เส้นทางข้อผิดพลาดโดยละเอียดและข้อความข้อผิดพลาดเชิงความหมาย ช่วยนักพัฒนาและทีมทดสอบระบุความขัดแย้งของสัญญา API และความผิดปกติของโครงสร้างข้อมูลได้อย่างรวดเร็ว
  • การทดสอบสัญญา API: เหมาะอย่างยิ่งสำหรับการแก้ไขจุดบกพร่องอินเทอร์เฟซ frontend-backend และการทดสอบสัญญาอัตโนมัติ รับรองว่าข้อมูลการตอบกลับจริงตรงกับ schema ที่กำหนดในเอกสาร API อย่างเคร่งครัด
  • การประมวลผลในเครื่องที่รวดเร็ว: การคำนวณฝั่งเบราว์เซอร์ล้วน ไม่จำเป็นต้องอัปโหลดเซิร์ฟเวอร์ รับรองความเป็นส่วนตัวของโครงสร้างข้อมูลธุรกิจที่ละเอียดอ่อนและข้อมูลทดสอบ ด้วยการประมวลผลที่รวดเร็วเป็นพิเศษโดยไม่มีความล่าช้า

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

วิธีตรวจสอบข้อมูลการตอบกลับของ API ด้วย JSON Schema?

เพียงวางนิยาม JSON Schema ที่คุณคาดหวังไว้ด้านซ้าย และวางข้อมูลการตอบกลับจริงของ API ไว้ด้านขวา เครื่องมือจะเปรียบเทียบโครงสร้างทั้งสองโดยอัตโนมัติ ตรวจสอบประเภทข้อมูล ช่องที่ต้องกรอก รูปแบบ regex และอื่นๆ อย่างแม่นยำ นี่เป็นขั้นตอนสำคัญสำหรับการทดสอบสัญญา API และรับรองความสอดคล้องของโครงสร้างข้อมูล frontend-backend

รองรับมาตรฐาน JSON Schema และกฎการตรวจสอบอะไรบ้าง?

เครื่องมือปฏิบัติตามมาตรฐาน JSON Schema Draft-07 อย่างสมบูรณ์ รองรับการตรวจสอบประเภทพื้นฐาน (type) ช่องที่ต้องกรอก (required) นิยามคุณสมบัติ (properties) การจับคู่รูปแบบ regex (pattern) การตรวจสอบรูปแบบ (format) ค่า enum (enum) และการตรวจสอบตรรกะการรวมที่ทรงพลัง (allOf, anyOf, oneOf, not)

จะระบุตำแหน่งข้อผิดพลาดอย่างรวดเร็วเมื่อการตรวจสอบล้มเหลวได้อย่างไร?

เมื่อข้อมูล JSON ไม่ตรงกับ schema เครื่องมือจะสร้างรายงานข้อผิดพลาดที่ละเอียดอย่างยิ่ง ชี้แจงเส้นทาง JSON ที่มีข้อผิดพลาด ประเภทข้อผิดพลาดเฉพาะ (เช่น ประเภทไม่ตรงกันหรือขาดช่องที่ต้องกรอก) และกฎ schema ที่เกี่ยวข้อง — เพิ่มประสิทธิภาพการแก้ไขจุดบกพร่องสำหรับการพัฒนา backend และการทำความสะอาดข้อมูลอย่างมาก

วิธีใช้ JSON Schema สำหรับการจัดการข้อมูลอัตโนมัติ?

ก่อนการทำความสะอาดข้อมูล ETL หรือการนำเข้าข้อมูล คุณสามารถใช้เครื่องมือนี้ตรวจสอบว่าข้อมูลสอดคล้องกับข้อกำหนด schema ที่กำหนดไว้ล่วงหน้าหรือไม่ สิ่งนี้ดักจับข้อมูลสกปรกและความผิดปกติได้อย่างมีประสิทธิภาพ รับรองคุณภาพข้อมูลที่เข้าสู่ฐานข้อมูลหรือระบบ downstream — ขั้นตอนสำคัญในการสร้าง pipeline ข้อมูลที่แข็งแกร่ง

การตรวจสอบ JSON Schema ออนไลน์จะเปิดเผยข้อมูลส่วนตัวของฉันหรือไม่?

ไม่ การประมวลผล JSON Schema Validator ทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณในเครื่องเท่านั้น ไม่ว่าจะเป็นโครงสร้างข้อมูล API ขององค์กรหรือข้อมูลธุรกิจส่วนตัว ไม่มีอะไรถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ รับรองการปกป้องความเป็นส่วนตัวของข้อมูลในระดับองค์กร

คู่มือคำสำคัญ JSON Schema

ตารางด้านล่างแสดงรายการคำสำคัญการตรวจสอบที่ใช้บ่อยที่สุดในข้อกำหนด JSON Schema จัดกลุ่มตามหมวดหมู่เพื่อการอ้างอิงที่รวดเร็ว

คำสำคัญคำอธิบาย
ประเภทพื้นฐาน
typeระบุประเภทข้อมูล: string, number, integer, boolean, array, object, null รองรับประเภทเดี่ยวหรืออาร์เรย์ของประเภท
การตรวจสอบออบเจกต์
propertiesกำหนดซับสคีมาสำหรับคุณสมบัติของออบเจกต์
requiredอาร์เรย์สตริงที่ระบุว่าคุณสมบัติใดเป็นที่ต้องการ
additionalPropertiesควบคุมว่าอนุญาตให้มีคุณสมบัติพิเศษที่ไม่ได้กำหนดใน properties หรือไม่ สามารถเป็น false หรือสคีมาได้
propertyNamesสคีมาที่ชื่อคุณสมบัติต้องตรงกับ (โดยทั่วไปใช้ pattern regex)
minPropertiesจำนวนคุณสมบัติขั้นต่ำที่ออบเจกต์ต้องมี
maxPropertiesจำนวนคุณสมบัติสูงสุดที่ออบเจกต์สามารถมีได้
เอนัมและค่าคงที่
enumอาร์เรย์ของค่าที่อนุญาต ข้อมูลต้องเป็นค่าหนึ่งในอาร์เรย์อย่างแน่นอน
constค่าคงที่ ข้อมูลต้องเท่ากับค่านี้อย่างเข้มงวด
ข้อจำกัดตัวเลข
minimumค่าตัวเลขขั้นต่ำ (รวมค่านี้ด้วย)
maximumค่าตัวเลขสูงสุด (รวมค่านี้ด้วย)
exclusiveMinimumค่าต้องมากกว่าอย่างเข้มงวด (ไม่รวมค่านี้)
exclusiveMaximumค่าต้องน้อยกว่าอย่างเข้มงวด (ไม่รวมค่านี้)
multipleOfค่าต้องเป็นผลคูณของจำนวนที่ระบุ
ข้อจำกัดสตริง
minLengthความยาวขั้นต่ำของสตริง
maxLengthความยาวสูงสุดของสตริง
patternนิพจน์ปรกติ สตริงต้องตรงกับรูปแบบนี้
formatการตรวจสอบรูปแบบความหมาย: email, uri, date-time, uuid, ipv4, ipv6, hostname ฯลฯ
ข้อจำกัดอาร์เรย์
itemsสคีมาสำหรับองค์ประกอบอาร์เรย์ (สคีมาเดียวใช้กับทุกองค์ประกอบ)
minItemsจำนวนองค์ประกอบอาร์เรย์ขั้นต่ำ
maxItemsจำนวนองค์ประกอบอาร์เรย์สูงสุด
uniqueItemsว่าองค์ประกอบอาร์เรย์ต้องไม่ซ้ำกันหรือไม่
containsอย่างน้อยหนึ่งองค์ประกอบอาร์เรย์ต้องตรงกับสคีมานี้
ตรรกะเชิงรวม
allOfข้อมูลต้องตรงกับทุกซับสคีมา (AND เชิงตรรกะ)
anyOfข้อมูลต้องตรงกับอย่างน้อยหนึ่งซับสคีมา (OR เชิงตรรกะ)
oneOfข้อมูลต้องตรงกับซับสคีมาเพียงหนึ่งเดียว (XOR)
notข้อมูลต้องไม่ตรงกับสคีมานี้ (NOT เชิงตรรกะ)
การตรวจสอบเชื่อมไข
ifสคีมาเงื่อนไข หากข้อมูลตรงกับ if ต้องสอดคล้องกับ then มิฉะนั้นต้องสอดคล้องกับ else
thenสคีมาที่ต้องสอดคล้องเมื่อเงื่อนไข if เป็นจริง
elseสคีมาที่ต้องสอดคล้องเมื่อเงื่อนไข if ไม่เป็นจริง
การอ้างอิงและการนำกลับมาใช้
$refอ้างอิงคำจำกัดความสคีมาอื่น รองรับการอ้างอิงในเครื่อง (#/$defs/xxx) และการอ้างอิงระยะไกล
$defsกำหนดซับสคีมาที่นำกลับมาใช้ใหม่ได้ (Draft 2019-09+ เวอร์ชันเก่าใช้ definitions)
definitionsคำสำคัญสำหรับซับสคีมาที่นำกลับมาใช้ใหม่ได้ใน Draft 4-7
ข้อมูลเมตา
titleชื่อสคีมา (คำอธิบายประกอบ ไม่ได้รับการตรวจสอบ)
descriptionคำอธิบายสคีมา (คำอธิบายประกอบ ไม่ได้รับการตรวจสอบ)
defaultค่าเริ่มต้น (คำอธิบายประกอบ ไม่ได้รับการตรวจสอบ)
examplesอาร์เรย์ของค่าตัวอย่าง (คำอธิบายประกอบ ไม่ได้รับการตรวจสอบ)
$schemaระบุเวอร์ชันข้อกำหนด JSON Schema ที่กำลังใช้งาน
การอาศัยกัน
dependentRequiredการอาศัยกันของคุณสมบัติ: เมื่อมีคุณสมบัติหนึ่งอยู่ คุณสมบัติอื่นๆ ต้องมีอยู่ด้วย (Draft 2019-09+)
dependenciesคำสำคัญการอาศัยกันใน Draft 4-7 ครอบคลุมทั้งการอาศัยกันของคุณสมบัติและสคีมา

การเปรียบเทียบเวอร์ชัน JSON Schema

JSON Schema ได้พัฒนาผ่านหลายเวอร์ชัน Draft ปัจจุบัน Draft 7 เป็นเวอร์ชันที่ใช้กันอย่างแพร่หลายที่สุด Draft 2020-12 เป็นเวอร์ชันเสถียรล่าสุด

คุณสมบัติDraft 4Draft 6Draft 72019-092020-12
การตรวจสอบ type
ฟิลด์ที่ต้องกรอก
enum/const✓ enum
minimum/maximum
exclusiveMinimum/Maximumบูลีนตัวเลขตัวเลขตัวเลขตัวเลข
multipleOf
minLength/maxLength
pattern regex
การตรวจสอบ formatคำอธิบายประกอบโดยค่าเริ่มต้นคำอธิบายประกอบโดยค่าเริ่มต้น
อาร์เรย์ items
contains
minItems/maxItems
uniqueItems
additionalProperties
propertyNames
allOf/anyOf/oneOf/not
if/then/else
การอ้างอิง $ref
การนำ $defs กลับมาใช้definitionsdefinitionsdefinitions$defs$defs
dependentRequired
ทูเพิล prefixItemsรูปแบบอาร์เรย์รูปแบบอาร์เรย์รูปแบบอาร์เรย์รูปแบบอาร์เรย์prefixItems
unevaluatedProperties
$dynamicRef/$anchor✓ $recursiveRef✓ dynamicRef