ประเด็นสำคัญ
- 01ขับเคลื่อนโดย Ajv ตัว JavaScript JSON Schema validator ที่ใช้มากที่สุด — สิ่งที่ผ่านที่นี่ผ่านใน Node.js, Fastify และ JavaScript toolchains ส่วนใหญ่
- 02รายงานข้อผิดพลาด validation ทุกรายการในคราว (allErrors mode) ไม่ใช่เพียงความล้มเหลวแรกเท่านั้น
- 03ข้อผิดพลาดแต่ละรายการรวม JSON Pointer path ไปยังฟิลด์ที่ล้มเหลวสำหรับการนำทางอย่างรวดเร็ว
- 04ทั้ง schema และ data ทำงานทั้งหมดในเบราว์เซอร์ของคุณ — ไม่มีการอัปโหลด
เหตุใด Validate JSON เทียบกับ Schema?
JSON Schema คือวิธีมาตรฐานในการอธิบายรูปร่างของ JSON document — required fields, allowed types, value constraints, nested object structures Validating เทียบกับ schema ก่อนที่ payload จะถึง production จับ type mismatches, missing required fields และ constraint violations จากเร็ว เมื่อมันถูกแก้ไข
กรณีการใช้งานที่พบบ่อยที่สุดคือ testing API request และ response bodies, validating configuration files, checking OpenAPI example objects และ verifying data exports เทียบกับ known structure Validator ของ Handytool ใช้ Ajv — de-facto JavaScript JSON Schema library ใช้ภายใน Node.js itself — ดังนั้นผลลัพธ์ที่นี่ตรงกับสิ่งที่ backend ของคุณจะเห็น
วิธี Validate JSON เทียบกับ Schema
- 01
วาง JSON Schema ของคุณ
วาง schema ในแผงซ้าย สิ่งนี้สามารถเป็น Draft 7 หรือ 2019-09 หรือ 2020-12 schema ด้วย type, properties, required, items, anyOf, allOf — Ajv-supported keyword ใดๆ
- 02
วาง JSON data ของคุณ
วาง data document ที่คุณต้องการ validate ในแผงขวา นี่คือ instance — API request body, config object, export record หรือตัวอย่างเดียวจาก OpenAPI spec ของคุณ
- 03
คลิก Validate
Ajv รัน validation พร้อม allErrors: true ซึ่งหมายความว่าจะเก็บรวบรวมความล้มเหลวทุกรายการแทนที่จะหยุดที่ความล้มเหลวแรก
- 04
ตรวจสอบรายการข้อผิดพลาด
ข้อผิดพลาดแต่ละรายการแสดง JSON Pointer path ไปยังค่าที่ล้มเหลว (เช่น /user/email) failing keyword (type, required, minimum) และข้อความที่อ่านได้มนุษย์ แก้ไขแต่ละอัน และ re-validate
สิ่งที่นักพัฒนา Validate ด้วย JSON Schema
- 01REST API request bodies — ยืนยันว่า payload ตรงกับรูปร่างที่คาดว่าของ endpoint ก่อนส่ง
- 02OpenAPI spec example objects — validate แต่ละตัวอย่างเทียบกับ inline schema component
- 03Configuration files — ตรวจสอบว่า required keys มีอยู่และค่าเป็นประเภทที่ถูกต้อง
- 04Data pipeline records — spot structural drift ระหว่าง data producers และ consumers
- 05Form submission payloads — test ว่า frontend validation mirror backend schema constraints
- 06Third-party webhook bodies — ยืนยันว่า documented schema ตรงกับ actual payload
Private Validation ไม่จำเป็นต้องมี Server
Ajv ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ไม่มี schema หรือ data ส่งไปยังเซิร์ฟเวอร์ใดๆ — คุณสามารถ validate schemas ที่อธิบาย internal data structures และ data objects ที่มี sensitive field values ได้อย่างปลอดภัย
Validator รองรับ JSON Schema drafts 6, 7, 2019-09 และ 2020-12 Draft ที่พบบ่อยที่สุดในป่าคือ Draft 7 ซึ่งครอบคลุม all everyday keywords: type, properties, required, items, minimum, maximum, pattern, enum, anyOf, allOf, oneOf, not และ $ref
JSON Schema Validator FAQ
JSON Schema drafts ใดได้รับการรองรับ?
Ajv รองรับ drafts 6, 7, 2019-09 และ 2020-12 Draft 7 ที่พบบ่อยที่สุดใน existing codebases และครอบคลุม all standard keywords
เหตุใด $ref schema ของฉันไม่ resolve?
External $ref URLs ไม่ได้ fetch ในเครื่องมือเฉพาะเบราว์เซอร์นี้ Inline ทั้งหมด referenced schemas โดยใช้ $defs และ local JSON pointers เช่น #/$defs/MyType
Schema หรือ data ของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดหรือไม่?
ไม่ Ajv ทำงานทั้งหมดในเบราว์เซอร์ของคุณ — ทั้ง schema และ data อยู่บนอุปกรณ์ของคุณ
ฉันสามารถใช้สิ่งนี้เพื่อ validate OpenAPI 3 spec?
คุณสามารถ validate individual schema components และ example objects ได้ Validating the whole OpenAPI document ต้อง dedicated OpenAPI validator ที่ hiểu spec meta-schema
เหตุใดฉันเห็น multiple errors แทนเพียงแรก?
Validator ถูกกำหนดค่าด้วย allErrors: true ซึ่งทำให้ Ajv เก็บรวบรวมความล้มเหลวทุกรายการแทนที่จะหยุดแรก นี่ตั้งใจ — คุณสามารถแก้ไขปัญหาทั้งหมดในหนึ่งผ่าน แทนที่จะทำ validation attempts ซ้ำกัน