← Назад к вопросам

Что такое JSON?

1.0 Junior🔥 231 комментариев
#Тестирование API

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

JSON (JavaScript Object Notation)

JSON — это легкий текстовый формат для обмена данными. Он является одним из самых популярных форматов в веб-разработке и API, и QA-специалисты часто работают с JSON при тестировании.

Определение и назначение

JSON — универсальный формат для представления и передачи данных между системами. Несмотря на название, JSON используется не только в JavaScript, но во всех современных языках программирования.

Основные применения:

  • REST API запросы и ответы
  • Конфигурационные файлы
  • Хранение данных (NoSQL базы: MongoDB, Firebase)
  • Обмен данными между клиентом и сервером

Основные характеристики

  • Человекочитаемый — легко понять содержимое
  • Компактный — занимает меньше места, чем XML
  • Легко парсить — все современные языки имеют встроенную поддержку
  • Язык-независимый — использует универсальные типы данных
  • Текстовый формат — передаётся как простой текст

Структура JSON

JSON состоит из двух основных структур:

1. Объект (Object)

Объект — это неупорядоченный набор пар ключ-значение, заключённый в фигурные скобки {}

{
  "name": "John",
  "age": 30,
  "email": "john@example.com"
}

Характеристики:

  • Ключи (name, age, email) всегда строки
  • Ключ и значение разделены двоеточием :
  • Пары разделены запятой ,
  • Последняя пара БЕЗ запятой

2. Массив (Array)

Массив — это упорядоченный список значений, заключённый в квадратные скобки []

{
  "users": [
    {"id": 1, "name": "John"},
    {"id": 2, "name": "Jane"},
    {"id": 3, "name": "Bob"}
  ]
}

Характеристики:

  • Элементы могут быть любого типа
  • Элементы разделены запятой ,
  • Порядок важен
  • Индексирование начинается с 0

Типы данных в JSON

ТипПримерОписание
String"hello"Текст в двойных кавычках
Number42, 3.14Целые и дробные числа
Booleantrue, falseЛогические значения
NullnullОтсутствие значения
Object{ }Вложенный объект
Array[ ]Массив значений

Примеры JSON

Простой объект (REST API ответ)

{
  "id": 123,
  "username": "john_doe",
  "email": "john@example.com",
  "isActive": true,
  "roles": ["user", "admin"],
  "profile": {
    "firstName": "John",
    "lastName": "Doe",
    "age": 30
  }
}

Массив объектов (список пользователей)

[
  {
    "id": 1,
    "name": "Alice",
    "status": "active"
  },
  {
    "id": 2,
    "name": "Bob",
    "status": "inactive"
  }
]

POST запрос

{
  "email": "user@example.com",
  "password": "secure123",
  "firstName": "John",
  "lastName": "Doe"
}

JSON в API тестировании

Запрос (Request)

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John",
    "email": "john@example.com"
  }'

Ответ (Response)

{
  "success": true,
  "data": {
    "id": 123,
    "name": "John",
    "email": "john@example.com",
    "createdAt": "2026-03-22T10:30:00Z"
  },
  "message": "User created successfully"
}

Правила JSON

Корректный JSON:

{"name": "John", "age": 30}

Некорректный JSON:

{name: "John", age: 30}           // Ключи без кавычек ❌
{"name": "John", "age": 30,}     // Запятая после последнего элемента ❌
{'name': 'John'}                  // Одинарные кавычки ❌
{"name": undefined}              // undefined не поддерживается ❌

Валидация JSON

Для проверки корректности JSON используются:

  • jsonlint.com — онлайн валидатор
  • IDE подсветка синтаксиса
  • Встроенные функции парсера

Python:

import json

# Парсирование JSON
data = json.loads('{"name": "John"}')
print(data['name'])  # John

# Преобразование в JSON
json_string = json.dumps({"name": "John"})
print(json_string)   # {"name": "John"}

JSON vs XML

АспектJSONXML
РазмерКомпактнееБольше данных
ЧитаемостьБолее понятенБолее структурирован
ПарсингБыстрееМедленнее
КомментарииНе поддерживаютсяПоддерживаются
ИспользованиеREST API, современные приложенияSOAP, legacy системы

JSON пример:

{"users": [{"name": "John", "age": 30}]}

XML эквивалент:

<users>
  <user>
    <name>John</name>
    <age>30</age>
  </user>
</users>

JSON Schema

JSON Schema — это способ описать структуру и валидность JSON документа.

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

Практические рекомендации для QA

  1. Проверяйте структуру JSON — используйте валидаторы
  2. Тестируйте граничные случаи — null, пустые массивы, вложенные объекты
  3. Используйте инструменты — Postman, REST Assured, JSON парсеры
  4. Проверяйте кодировку — убедитесь в UTF-8
  5. Валидируйте типы — число не должно быть строкой

JSON — это стандартный формат для современного веб-разработки, и его понимание необходимо для любого QA-специалиста, работающего с API.