JSON — uy bo'lsa, JSON Schema — arxitektor chizmasi. U qaysi xonalar majburiy, devor qanday materialdan bo'lishi kerakligini aytadi va ma'lumotni avtomatik tekshirish imkonini beradi.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": ["ism", "yosh"], "properties": { "ism": { "type": "string", "minLength": 2 }, "yosh": { "type": "integer", "minimum": 0, "maximum": 130 }, "email": { "type": "string", "format": "email" }, "rol": { "enum": ["admin", "user", "guest"] } }, "additionalProperties": false }
| Kalit | Vazifasi |
|---|---|
| type | Tur: string/number/integer/boolean/object/array/null |
| required | Majburiy kalitlar ro'yxati |
| properties | Har bir kalit uchun qoida |
| items | Massiv elementlari uchun qoida |
| enum / const | Ruxsat etilgan qiymatlar |
| pattern | Regex bilan matn tekshiruvi |
| $ref / $defs | Qayta ishlatiladigan bo'laklar |
| oneOf / anyOf / allOf | Mantiqiy kombinatsiyalar |
| additionalProperties | Ortiqcha kalitlarga ruxsat bermaslik |
Amalda
Ajv (JS), pydantic (Python), zod (TS) kabi vositalar schema asosida validatsiya qiladi. OpenAPI hujjatlari ham JSON Schema ustiga qurilgan.
🛠 Mashq: Mahsulot uchun schema yoz: id (integer), nom (string), narx (number, >0).
mashq.json
Uy mustahkam — JSON to'g'ri ✅