Что проверяют при валидации JSON?

«Что проверяют при валидации JSON?» — вопрос из категории Форматы данных, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Валидация JSON включает несколько уровней проверки:

  1. Синтаксическая валидность — соответствие формату JSON (парные скобки, кавычки, правильные разделители).
  2. Структура данных — наличие обязательных полей и их вложенность.
  3. Типы данных — соответствие значений ожидаемым типам: string, number, boolean, null, array, object.
  4. Семантическая корректность — проверка форматов (email, дата, UUID) и бизнес-ограничений (диапазоны чисел, длина строк).

Пример базовой проверки на Python:

import json

def is_valid_json(json_string):
    try:
        json.loads(json_string)
        return True
    except json.JSONDecodeError:
        return False

Для сложных проверок используют JSON Schema — стандарт для описания структуры, типов и ограничений. Пример схемы:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["email"]
}