Что общего у форматов JSON, XML и YAML?

«Что общего у форматов JSON, XML и YAML?» — вопрос из категории Архитектура, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JSON, XML и YAML — это текстовые форматы для сериализации и обмена структурированными данными. Их ключевые общие характеристики:

  • Человекочитаемость: Данные представлены в виде текста, который можно прочитать и понять без специальных инструментов.
  • Иерархическая структура: Все три формата поддерживают вложенность данных (деревья, словари, списки).
  • Независимость от платформы: Форматы являются языково-независимыми и широко поддерживаются всеми основными языками программирования и операционными системами.
  • Использование для конфигурации и API: Часто применяются для файлов конфигурации, обмена данными между клиентом и сервером (REST/SOAP API) и хранения настроек.

Сравнение синтаксиса на примере описания пользователя:

JSON (JavaScript Object Notation):

{
  "user": {
    "name": "John",
    "age": 30,
    "active": true
  }
}

XML (eXtensible Markup Language):

<user>
  <name>John</name>
  <age>30</age>
  <active>true</active>
</user>

YAML (YAML Ain't Markup Language):

user:
  name: John
  age: 30
  active: true

Основные различия:

  • Строгость: XML требует валидного синтаксиса и закрывающих тегов. JSON и YAML более лаконичны.
  • Комментарии: YAML и некоторые реализации XML поддерживают комментарии, в JSON комментарии не предусмотрены спецификацией.
  • Типы данных: YAML и JSON нативно поддерживают булевы значения, числа, строки, null, массивы и объекты. В XML все данные — это строки внутри тегов или атрибутов.
  • Популярность: JSON стал де-факто стандартом для веб-API, YAML широко используется для конфигураций (Docker Compose, Kubernetes), XML распространен в корпоративных и SOAP-сервисах.