onlinetools.dev

ตัวตรวจสอบและสร้าง JSON Schema

ตรวจ JSON กับสคีมา หรืออนุมานสคีมาจากข้อมูลตัวอย่าง

ทำงานในเครื่อง
loading…
เกี่ยวกับเครื่องมือนี้

สองทิศทางของศาสตร์เดียวกัน: วางตัวอย่าง JSON แล้วได้สคีมาแบบ draft-07 ที่อนุมานจากมัน หรือวางทั้งข้อมูลและสคีมาแล้วเห็นทุกข้อผิดพลาดพร้อมเส้นทาง JSON ของมัน การตรวจสอบทำงานบน Ajv — เอนจินเดียวกับที่บริการ Node ส่วนใหญ่ใช้ — สิ่งที่ผ่านที่นี่จึงผ่านใน CI ด้วย

การอนุมานคิดแบบใช้งานจริง: คีย์ของอ็อบเจกต์กลายเป็นพร็อพเพอร์ตีที่มีชนิดข้อมูลและรายการ required อาร์เรย์รวมรูปทรงของสมาชิกทั้งหมด จำนวนเต็มถูกแยกจากทศนิยม และคีย์ที่ปรากฏในสมาชิกบางตัวของอาร์เรย์เท่านั้นก็ถูกละไว้จาก required อย่างถูกต้อง ผลลัพธ์คือจุดตั้งต้นที่คุณจะรัดกุมขึ้นด้วย format ช่วงค่า และรูปแบบ

คำตอบจาก API และไฟล์คอนฟิกคือข้อมูลที่คุณอยากให้ไปอยู่บนเซิร์ฟเวอร์ของบุคคลที่สามน้อยที่สุดพอดี ทั้งการอนุมานและการตรวจสอบทำงานในเบราว์เซอร์ของคุณทั้งหมด

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

รองรับ JSON Schema ร่างไหน?
การอนุมานให้ผลเป็น draft-07 ซึ่งเป็นร่างที่ตัวแก้ไขและตัวตรวจสอบรองรับกว้างที่สุด ส่วนการตรวจสอบรับ draft-07 และร่างก่อนหน้าที่ Ajv เข้าใจในโหมดไม่เข้มงวด คีย์เวิร์ดของ 2019-09/2020-12 ก็มักใช้ได้ เพราะคีย์เวิร์ดที่ไม่รู้จักจะถูกเพิกเฉยแทนที่จะทำให้ล้มเหลว
$ ในเส้นทางของข้อผิดพลาดหมายถึงอะไร?
มันคือรากของเอกสาร ตามสไตล์ JSONPath: $.age หมายถึงพร็อพเพอร์ตี age ที่ระดับบนสุด ส่วน $.items.2.name คือ name ของสมาชิกอาร์เรย์ตัวที่สาม เส้นทางว่าง ($) หมายถึงข้อผิดพลาดอยู่ที่ตัวรากของเอกสารเอง — ชนิดข้อมูลผิด หรือขาดพร็อพเพอร์ตีที่จำเป็น
ทำไมสคีมาที่อนุมานได้จึงเข้มงวดหรือหลวมกว่าที่ฉันคาด?
มันบรรยายตัวอย่างที่คุณให้มาอย่างตรงไปตรงมา: ฟิลด์ที่ปรากฏทุกที่จะกลายเป็น required และอนุญาตเฉพาะชนิดข้อมูลที่พบเห็นเท่านั้น ให้ป้อนตัวอย่างที่หลากหลายกว่านี้ (อาร์เรย์ของอ็อบเจกต์ที่เป็นตัวแทน) เพื่อได้สคีมาที่ทั่วไปขึ้น แล้วค่อยปรับด้วยมือ — การอนุมานไม่มีทางรู้เจตนาของคุณ
การตรวจสอบรองรับ format, pattern และคีย์เวิร์ดข้อจำกัดอื่น ๆ ไหม?
คีย์เวิร์ดเชิงโครงสร้าง (type, required, properties, items, enum, minimum, pattern…) ถูกบังคับใช้เต็มที่ ส่วนสตริง format อย่าง "email" หรือ "date-time" จะไม่ถูกยืนยัน — ซึ่งสะท้อนข้อกำหนดของ JSON Schema ที่ถือว่า format เป็นเพียงคำอธิบายประกอบโดยค่าเริ่มต้น และช่วยเลี่ยงความมั่นใจที่ผิด ๆ
เครื่องมือที่เกี่ยวข้อง