Конвертер и Форматтер YAML ↔ JSON

Конвертируйте между форматами YAML и JSON или форматируйте и проверяйте YAML. Автоматически определяет формат ввода. Бесплатно и работает полностью в вашем браузере.

Как использовать

  1. Вставьте ваш YAML или JSON в поле ввода — инструмент автоматически определит формат
  2. Нажмите «В JSON», чтобы конвертировать в JSON, или «В YAML», чтобы конвертировать в YAML
  3. Используйте «Форматировать YAML», чтобы привести YAML-документ в порядок без конвертации
  4. Используйте «Минифицировать», чтобы получить компактный однострочный JSON
  5. Настройте селектор отступов для управления форматированием вывода
  6. Нажмите «Копировать», чтобы скопировать результат, или «Очистить», чтобы сбросить

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

  • Что такое YAML?

    YAML (YAML Ain't Markup Language) — это удобочитаемый формат сериализации данных, широко используемый для файлов конфигурации, конвейеров CI/CD и манифестов Kubernetes. Для представления структуры он использует отступы вместо фигурных скобок.

  • Когда стоит использовать YAML вместо JSON?

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

  • Может ли YAML представить всё, что может JSON?

    Да. JSON является подмножеством YAML — любой допустимый JSON также является допустимым YAML. YAML дополнительно поддерживает комментарии, многострочные строки, якоря и псевдонимы.

  • Мои данные отправляются на сервер?

    Нет. Вся конвертация выполняется полностью в вашем браузере с использованием библиотеки js-yaml. Ваши данные никогда не покидают ваше устройство.

  • Что произойдёт, если входные данные некорректны?

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

YAML и JSON: для каких задач каждый формат лучше

YAML и JSON решают одну задачу — хранение структурированных данных — но оптимизированы для разных сценариев использования. Понимание различий помогает выбрать правильный формат в конкретном контексте.

Когда выбирать YAML

Файлы конфигурации, редактируемые людьми

YAML создан для удобочитаемости. Файлы конфигурации Kubernetes, Docker Compose, GitHub Actions, Ansible — везде используется YAML именно потому, что его пишут и правят люди. Отступы вместо скобок, опциональные кавычки, поддержка комментариев делают большие конфиги значительно читаемее.

Конфигурации с комментариями

JSON не поддерживает комментарии — это принципиальное ограничение формата. YAML позволяет документировать конфигурацию прямо в файле:

база_данных:
  # Адрес primary-реплики
  хост: db.example.com
  # Порт по умолчанию для PostgreSQL
  порт: 5432

Многострочные текстовые данные

YAML элегантно обрабатывает многострочные строки через блочные скалярные стили (| и >), тогда как в JSON многострочный текст требует явного \n и экранирования.

Когда выбирать JSON

API и межсервисный обмен данными

JSON является стандартом для REST API и GraphQL. Он строго определён, не допускает неоднозначностей и имеет нативную поддержку во всех языках программирования и инструментах (curl, Postman, браузерные DevTools).

Данные, обрабатываемые только машинами

Если данные никогда не будут редактироваться вручную, преимущества читаемости YAML не нужны. JSON компактнее, быстрее парсится и однозначнее.

Строгая типизация

В JSON тип данных однозначен: строка всегда в кавычках, число — без. В YAML yes, no, on, off могут интерпретироваться как булевы значения (зависит от версии спецификации), 1.0 может стать числом с плавающей точкой, а 2024-01-15 — объектом Date. Это источник тонких ошибок при конвертации.

Важные нюансы при конвертации

Потеря комментариев

При конвертации YAML → JSON все комментарии безвозвратно теряются. Это нормально, если цель — машинная обработка, но важно помнить при двусторонней конвертации.

Якоря и псевдонимы

YAML-якоря (&anchor) при конвертации в JSON раскрываются в полные копии объектов. Если якорь использовался для избежания повторений, результирующий JSON будет содержать дублирующиеся данные.

Ключи с нестандартными символами

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

Числа и булевы значения

Строка "true" в JSON — это строка. В YAML true без кавычек — булево значение. При конвертации JSON → YAML строка "true" остаётся строкой, но true (без кавычек) станет булевым. Проверяйте типы данных при конвертации в обе стороны.

Практические сценарии конвертации

  • Helm-чарты в Kubernetes: иногда нужно быстро проверить, как YAML-манифест будет выглядеть в JSON для отправки в API
  • Миграция конфигураций: перевод конфига приложения из JSON в YAML для удобного редактирования
  • Отладка: конвертация YAML в JSON для использования в JSON Path-запросах или jq
  • OpenAPI/Swagger: спецификации поддерживают оба формата, иногда нужно переключиться между ними