Назад к блогу
Разработка

JSON vs XML: что лучше и почему все перешли на JSON

Если вы работали с API, настраивали конфигурации или просто обменивались данными между системами — вы точно сталкивались с JSON и XML. Эти два формата — как два брата, которые пошли разными путями. Один лёгкий и быстрый, другой — основательный и строгий.

Я помню свои первые шаги в разработке: мы использовали XML для всего. Конфиги, API, ответы сервера — везде был этот громоздкий теговый язык. А потом появился JSON, и всё изменилось.

Давайте разберёмся, в чём разница, что лучше, и почему индустрия массово перешла на JSON.

Что такое JSON?

JSON (JavaScript Object Notation) — это лёгкий формат обмена данными, основанный на синтаксисе JavaScript. Он был создан в начале 2000-х и быстро завоевал популярность благодаря своей простоте.

Вот как выглядит JSON:

{
  "user": {
    "id": 123,
    "name": "Иван Петров",
    "email": "ivan@example.com",
    "isActive": true,
    "hobbies": ["чтение", "программирование"]
  }
}

Просто, читаемо, понятно. Это как объект в JavaScript — не зря же он так называется.

Что такое XML?

XML (eXtensible Markup Language) — это расширяемый язык разметки. Он появился в конце 90-х и был призван заменить HTML для передачи данных.

Вот как выглядит XML:

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <id>123</id>
  <name>Иван Петров</name>
  <email>ivan@example.com</email>
  <isActive>true</isActive>
  <hobbies>
    <hobby>чтение</hobby>
    <hobby>программирование</hobby>
  </hobbies>
</user>

Как видите, XML использует теги, как HTML. Данные обёрнуты в открывающие и закрывающие теги, что делает формат самодокументируемым.

JSON vs XML — сравнение

Давайте разберём ключевые отличия в таблице:

Характеристика JSON XML
Размер Маленький (компактный) Большой (много тегов)
Скорость парсинга Быстрая Медленная
Читаемость Отличная Хорошая
Поддержка типов данных String, Number, Boolean, Array, Object String, Number, Boolean, Дата
Атрибуты Нет Есть
Схема/Валидация JSON Schema (необязательно) DTD, XSD (стандарт)
Поддержка браузерами Встроенный JSON.parse() Через DOMParser
JSON Победитель
  • ✅ Компактный размер
  • ✅ Быстрый парсинг
  • ✅ Простота чтения
  • ✅ Совместимость с JS
XML Устаревает
  • ❌ Большой размер
  • ❌ Медленный парсинг
  • ✅ Строгая валидация
  • ✅ Атрибуты и схемы

Почему JSON лучше (и все перешли на него)

Когда я впервые попробовал JSON, я понял: назад пути нет. Вот почему:

  • Компактность

    JSON занимает на 40-60% меньше места, чем XML. Меньше данных = быстрее передача = меньше трафика.

  • Скорость парсинга

    JSON парсится в разы быстрее. В JavaScript это встроенная функция JSON.parse().

  • Совместимость с JavaScript

    JSON — это почти готовый объект JavaScript. Для фронтенд-разработчиков это мечта.

  • Читаемость

    JSON проще читать. Меньше символов, меньше визуального шума.

Где всё ещё используют XML?

Несмотря на то, что JSON победил, XML не умер. Он всё ещё жив и используется в некоторых областях:

  • SOAP веб-сервисы

    Старый, но живучий стандарт для корпоративных интеграций

  • Конфигурационные файлы

    Например, в Java (pom.xml, web.xml), Android (AndroidManifest.xml)

  • RSS и Atom ленты

    Многие новостные сайты до сих пор отдают RSS в XML

Кратко: XML используют там, где нужна строгая валидация, сложные структуры и работа с документами. JSON используют везде для обмена данными.

Когда что выбирать — практические советы

JSON
  • ✅ REST API
  • ✅ Работа с JavaScript/фронтендом
  • ✅ Важна скорость и размер
  • ✅ Нужна простота
  • ✅ Новый проект
XML
  • ✅ Корпоративный SOAP
  • ✅ Строгая валидация схем
  • ✅ Работа с документами
  • ✅ Java-стек
  • ✅ RSS лента

Работа с JSON и XML в разных языках

JavaScript (парсинг JSON)

const data = JSON.parse(jsonString);
console.log(data.user.name);

JavaScript (парсинг XML)

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
const name = xmlDoc.getElementsByTagName("name")[0].textContent;

Python (парсинг JSON)

import json
data = json.loads(json_string)
print(data['user']['name'])

Python (парсинг XML)

import xml.etree.ElementTree as ET
root = ET.fromstring(xml_string)
name = root.find('name').text

Как видите, работать с JSON проще и кода нужно меньше.

Ключевые выводы (TL;DR):
  • JSON компактнее, быстрее и проще XML.
  • JSON — стандарт для современных REST API.
  • XML всё ещё используется в корпоративной среде и для сложных структур.
  • В 90% случаев выбирайте JSON для новых проектов.
  • Используйте XML только когда это действительно необходимо.

Часто задаваемые вопросы

Что лучше: JSON или XML?

В большинстве случаев — JSON. Он легче, быстрее, проще и является стандартом для современных API.

В чём главное отличие?

JSON — это объектная нотация, а XML — это язык разметки с тегами. JSON компактнее, XML — строже.

Почему все перешли на JSON?

Из-за простоты, скорости, совместимости с JavaScript и меньшего размера данных.

Где используют XML?

В SOAP, конфигах Java, RSS, офисных документах (docx, xlsx) и научных данных.

Можно ли конвертировать XML в JSON?

Да, есть инструменты и библиотеки. Но не все XML структуры хорошо конвертируются.

В итоге

Я использую JSON везде, где это возможно. API, конфиги, хранение данных — всё в JSON. XML я оставляю для тех редких случаев, когда работаю с SOAP или старыми системами.

Мой совет: используйте JSON для всего нового. Это сэкономит вам время, нервы и трафик. А XML оставьте для совместимости, когда это действительно необходимо.