Форматы данных

Форматы данных определяют, как информация структурирована при передаче между клиентом и сервером. В веб- и мобильной разработке на TypeScript чаще всего используются JSON и FormData. XML встречается редко и упоминается только для общего понимания.

JSON (JavaScript Object Notation)

JSON — это лёгкий текстовый формат для обмена данными, основанный на синтаксисе объектов JavaScript. Он стал стандартом де-факто для веб-API благодаря простоте, читаемости и нативной поддержке в JavaScript и TypeScript.

Структура JSON включает:

  • Объекты: { "ключ": "значение" }
  • Массивы: [1, 2, 3] или [{"id": 1}, {"id": 2}]
  • Примитивы: строки ("text"), числа (42), логические значения (true, false), null

Пример корректного JSON:

{
  "id": 101,
  "name": "Maria",
  "isActive": true,
  "tags": ["user", "premium"]
}

В JavaScript/TypeScript объект преобразуется в JSON с помощью JSON.stringify(), а JSON-строка парсится в объект через JSON.parse(). При работе с fetch метод response.json() автоматически вызывает JSON.parse().

XML (eXtensible Markup Language)

XML — это текстовый формат, использующий теги для структурирования данных, похожий на HTML. Пример:

<user>
  <id>101</id>
  <name>Maria</name>
  <isActive>true</isActive>
</user>

Хотя XML поддерживает строгую валидацию через XSD-схемы и метаданные, он громоздок и неудобен для обработки в JavaScript. Современные приложения почти не используют XML. Его знание требуется только при интеграции с устаревшими системами.

FormData

FormData — это специальный объект в JavaScript, предназначенный для отправки данных в формате multipart/form-data. Он используется, когда нужно передать файлы (например, изображения) вместе с текстовыми полями.

Создание и использование:

const formData = new FormData();
formData.append('email', 'user@example.com');
formData.append('avatar', file); // file — объект File из input[type="file"]

При отправке через fetch заголовок Content-Type не указывается вручную — среда выполнения автоматически установит его со значением multipart/form-data; boundary=....

FormData применяется при работе с формами, содержащими файлы, например, при загрузке аватара пользователя через HTML-форму в веб-приложении.

Другие форматы

Иногда встречаются:

  • application/x-www-form-urlencoded — формат HTML-форм, где данные кодируются как key1=value1&key2=value2. Используется редко в API, чаще в legacy-системах.
  • Plain text или бинарные форматы (например, image/png) — при загрузке или скачивании файлов напрямую.

В рамках курса основное внимание уделяется JSON и FormData, так как они покрывают подавляющее большинство сценариев работы с API в приложениях на React.