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

XML и JSON: различия, примеры и когда использовать каждый формат

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

Опубликовано

XML и JSON используют разные модели данных

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

Поскольку модели различаются, конвертация является выбором правил отображения, а не посимвольным переписыванием.

Одни данные в XML и JSON

Это правило сохраняет XML-атрибут в отдельном объекте. Текст true остаётся строкой, если конвертеру явно не разрешено определять скалярные типы.

XML:
<user id="42">
  <name>Ada</name>
  <active>true</active>
</user>

JSON:
{
  "user": {
    "@attributes": { "id": "42" },
    "name": "Ada",
    "active": "true"
  }
}

Типы, порядок и повторяющиеся значения

ВопросXMLJSON
Скалярные типыТекст, пока схема или приложение не добавляет правила типовСтрока, число, логическое значение и null встроены
ПорядокПорядок дочерних элементов значим для модели документаПорядок массива значим; порядок полей объекта не должен нести смысл
Повторяющиеся значенияПовторяющиеся соседние элементыЯвные массивы
МетаданныеАтрибуты и пространства имёнОбычные поля объекта по принятому соглашению

Читаемость, размер и инструменты

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

Когда использовать XML или JSON

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

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

Проверьте пример

Преобразуйте один XML-объект в JSON

Пример наглядно показывает отображение атрибута и текстовых значений.

<user id="42"><name>Ada</name><active>true</active></user>

Ожидаемый результат: Умное отображение группирует id в @attributes и сохраняет текстовые значения как строки.

Преобразуйте реальный документ

Посмотрите, как XML отображается в JSON

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

Перейти в XML to JSON Converter →