Форматы данных
Форматы данных определяют, как информация структурирована при передаче между клиентом и сервером. В веб- и мобильной разработке на 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.