Главная Блог XML в JSON и обратно: как и зачем конвертировать

XML в JSON и обратно: как и зачем конвертировать

08.08.2026

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

Чем отличаются XML и JSON

XML (eXtensible Markup Language) — формат на основе тегов, знакомый по старым SOAP-API, конфигурационным файлам и RSS-лентам. У элементов могут быть атрибуты, вложенные теги и текстовое содержимое одновременно. JSON (JavaScript Object Notation) — более компактный формат «ключ-значение», который сегодня использует подавляющее большинство REST API.

XML многословнее и требует закрывающих тегов, зато допускает атрибуты и смешанное содержимое. JSON короче и однозначнее ложится на структуры данных языков программирования, поэтому современные API почти всегда выбирают его.

Как атрибуты XML попадают в JSON

При конвертации XML → JSON главный вопрос — куда девать атрибуты, ведь в JSON нет аналога атрибутов тега. Обычно их превращают в обычные ключи с префиксом, например @_: запись <item id="1">текст</item> становится {"item": {"@_id": "1", "#text": "текст"}}. Префикс нужен, чтобы отличить атрибут от вложенного элемента с тем же именем.

Повторяющиеся теги превращаются в массив

Если внутри родительского элемента несколько одинаковых тегов, при конвертации в JSON они собираются в массив:

<items>
  <item>a</item>
  <item>b</item>
</items>

превращается в:

{ "items": { "item": ["a", "b"] } }

А вот единственный тег без «соседей» останется обычным объектом, а не массивом из одного элемента — это стоит учитывать в коде, который читает результат: единичный элемент и массив из одного элемента обрабатываются по-разному.

Как сконвертировать онлайн

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

Обратная конвертация: JSON → XML

Обратный переход работает не для любого JSON: у XML всегда один корневой элемент, поэтому JSON для конвертации в XML должен быть объектом с единственным ключом верхнего уровня, а не массивом или примитивным значением. Если структура была получена конвертацией из XML (с ключами @_... и #text), обратное преобразование восстановит исходные атрибуты и текстовые узлы.

Когда это нужно

  • Интеграция со старым API, который отдаёт XML, а остальная система работает с JSON.
  • Отладка: быстро прочитать длинный XML-документ в более компактном и знакомом виде.
  • Миграция конфигов между системами, использующими разные форматы.

Если вместо XML нужно сконвертировать YAML или CSV, для этого есть отдельные инструменты: JSON ⇄ YAML и JSON ⇄ CSV.

← Все статьи