Sobes.tech
Junior

JSON sxemasi nima?

sobes.tech AI

AIdan javob

JSON sxemasi (JSON Schema) — bu JSON asosida yaratilgan leksik standart bo‘lib, JSON formatidagi ma’lumotlarning tuzilishi va cheklovlarini tavsiflash uchun ishlatiladi. Bu JSON ma’lumotlarini validatsiya qilish, tavsiflash va hujjatlashtirish imkonini beradi.

Asosiy maqsadlar:

  • Validatsiya: JSON nusxasining belgilangan tuzilishga mos kelishini tekshirish.
  • Hujjatlashtirish: JSON ma’lumotlar formatini tavsiflash.
  • O‘zaro ta’sir: Tizimlar o‘rtasida metama’lumotlar almashinuvi.

JSON sxemasining asosiy komponentlari:

  • Ma’lumot turlari: string, number, integer, boolean, object, array, null.
  • Cheklovlar uchun kalit so‘zlar:
    • type: Kutilyotgan ma’lumot turi.
    • properties: Ob’ektning xususiyatlarini tavsiflash. Har bir xususiyat o‘zining kichik sxemasiga ega.
    • required: Majburiy xususiyatlar ro‘yxati.
    • items: Massiv elementlarini tavsiflash.
    • minLength/maxLength: Stringlar uchun uzunlik cheklovlari.
    • minimum/maximum: Raqamlar uchun cheklovlar.
    • pattern: String uchun muntazam ifoda.
    • enum: Ruxsat etilgan qiymatlar ro‘yxati.
    • allOf/anyOf/oneOf/not: Mantiqiy kombinatsiyalar.
  • Metama’lumotlar uchun kalit so‘zlar:
    • title: Sxemaning qisqa nomi.
    • description: Sxemaning batafsil tavsifi.
    • default: Standart qiymat.

JSON sxemasining misoli:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Foydalanuvchining noyob identifikatori"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Bu sxemaga mos keladigan valid JSON ma’lumotlar misoli:

{
  "id": 123,
  "username": "testuser",
  "isActive": false
}

Bu sxemaga mos kelmaydigan invalid JSON ma’lumotlar misoli:

{
  "id": "abc" // Noto‘g‘ri tur
  // Majburiy maydon "username" yo‘q
}

JSON sxemasidan QA avtomatlashtirishda foydalanish:

  • API javoblarini validatsiya qilish: JSON javoblar belgilangan formatga mos kelishini tekshirish.
  • So‘rovlarni validatsiya qilish: Kiruvchi JSON ma’lumotlarini ularni ishlashdan oldin tekshirish.
  • Test ma’lumotlarini yaratish: Sxemadan foydalanib, valid (yoki invalid) misollar yaratish.
  • Hujjatlashtirish: API uchun avtomatik yangilanadigan hujjatlarni yaratish.

Turli dasturlash tillarida JSON sxemalari bilan ishlash uchun kutubxonalar mavjud (masalan, Python uchun jsonschema, Java uchun json-schema-validator).