Sobes.tech
Junior

Шемаи JSON чист?

sobes.tech AI

Ҷавоб аз AI

JSON схемаи (JSON Schema) — ин стандартест лексикӣ дар асоси JSON барои тавсифи сохтор ва маҳдудиятҳои маълумот дар формат JSON. Имкон медиҳад, ки валидация, тавсиф ва ҳуҷҷатгузорӣ кардани маълумоти JSON.

Мақсадҳои асосӣ:

  • Валидация: Санҷиши мувофиқати намунаи JSON бо сохтори муайян.
  • Ҳуҷҷатгузорӣ: Тавсифи формати маълумоти JSON.
  • Интераксия: Табодули метаданҳо байни системҳо.

Компонентҳои калидии JSON схем:

  • Навъҳои маълумот: string, number, integer, boolean, object, array, null.
  • Калидвожаҳои маҳдудиятҳо:
    • type: Навъи интизории маълумот.
    • properties: Тавсифи хусусиятҳои объект. Ҳар хусусият дорои схемаи зер мебошад.
    • required: Листи хусусиятҳои ҳатмӣ барои объект.
    • items: Тавсифи унсурҳои массив.
    • minLength/maxLength: Маҳдудиятҳои дарозӣ барои сатрҳо.
    • minimum/maximum: Маҳдудиятҳо барои рақамҳо.
    • pattern: Ифодаи муқарраршударо барои сатр.
    • enum: Листи арзишҳои иҷозатдодашуда.
    • allOf/anyOf/oneOf/not: Комбинацияҳои логикӣ барои схем.
  • Калидвожаҳои метаданӣ:
    • title: Номи кӯтоҳи схем.
    • description: Тавсифи муфассали схем.
    • default: Арзиши пешфарз.

Масали JSON схем:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Идентификатори беназири корбар"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Масали маълумоти JSON, ки мувофиқ бо ин схем:

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

Масали маълумоти JSON, ки номувофиқ бо ин схем:

{
  "id": "abc" // Навъи нодуруст
  // Ҳатмӣ нест кардани майдони "username"
}

Истифодаи JSON схем дар автоматизатсияи QA:

  • Валидацияи ҷавобҳои API: Санҷиши мувофиқати ҷавобҳои JSON бо формати муайян.
  • Валидацияи дархостҳо: Санҷиши маълумоти JSON воридотӣ пеш аз коркард.
  • Таҳия кардани маълумоти тестӣ: Истифодаи схемаи барои эҷоди намунаҳои дуруст (ё нодуруст).
  • Ҳуҷҷатгузорӣ: Тавсияшудаи худкор ҳуҷҷатгузории API.

Китобхонаҳо барои кор бо JSON схем дар забонҳои барномасозӣ (масалан, jsonschema барои Python, json-schema-validator барои Java) мавҷуданд.