В чем основные различия между XML и JSON?

«В чем основные различия между XML и JSON?» — вопрос из категории Форматы данных, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

XML (eXtensible Markup Language) и JSON (JavaScript Object Notation) — это текстовые форматы для структурированных данных, но с разной философией и применением.

Сравнительная таблица:

Критерий JSON XML
Происхождение Произошел от JavaScript Произошел от SGML/HTML
Синтаксис Пары ключ: значение, массивы [] Теги <тег>данные</тег>, атрибуты
Размер Более компактный, меньше служебных символов Более многословный из-за закрывающих тегов
Читаемость Проще для человека и машин Сложнее из-за избыточности
Типы данных Встроенные: строка, число, boolean, null, массив, объект Все данные — текст; типы задаются схемами (XSD)
Парсинг Тривиален в JavaScript (JSON.parse()); быстрые парсеры Требует DOM или SAX парсеров; обычно медленнее
Пространства имен Не поддерживает Поддерживает (namespaces), что сложно
Валидация JSON Schema (менее распространен) XSD (XML Schema Definition) — мощный стандарт

Пример JSON:

{
  "user": {
    "name": "Alice",
    "active": true,
    "skills": ["Python", "SQL"]
  }
}

Пример XML:

<user active="true">
  <name>Alice</name>
  <skills>
    <skill>Python</skill>
    <skill>SQL</skill>
  </skills>
</user>

Применение:

  • JSON — де-факто стандарт для RESTful API, конфигураций (package.json) и обмена данными в веб-приложениях.
  • XML — часто используется в корпоративных SOAP-сервисах, конфигурационных файлах (pom.xml, AndroidManifest.xml), документах (Office Open XML, SVG).