Справочник форматов
Как перейти между JSON и YAML без сюрпризов
Оба формата описывают структуры данных, но YAML хранит больше особенностей представления. Конвертация сохраняет данные, а не внешний вид исходного файла.
Соответствие типов
Одна структура — разная запись
RFC 8259 определяет 2 составных и 4 примитивных типа JSON. При переводе они сопоставляются с коллекциями и скалярами YAML.
Механика конвертации
Парсер сохраняет смысл, не оформление
Инструмент сначала разбирает текст в значения JavaScript, затем заново сериализует их в выбранный формат. Именно поэтому комментарии и авторское форматирование не проходят через середину процесса.
Практика
Где пригодится преобразование
Docker Compose
Приведите JSON-конфигурацию сервиса к читаемому YAML и вручную проверьте переменные окружения и секреты.
services: → app: → image:Kubernetes
Разберите объект API из JSON-ответа и получите YAML-заготовку. Удалите служебные поля перед применением.
apiVersion · kind · metadataAPI и тесты
Минифицируйте JSON для запроса или превратите YAML-фикстуру в строгий JSON для клиента без YAML-парсера.
request → validate → fixture{
"service": "toolkitch",
"ports": [80, 443],
"enabled": true
}service: toolkitch
ports:
- 80
- 443
enabled: trueГраницы форматов
Пять мест, где легко ошибиться
Комментарии
JSON их не поддерживает. В YAML комментарий начинается с #, но относится к представлению, а не данным.
Ключи и кавычки
В JSON имена полей всегда в двойных кавычках. YAML часто допускает запись без кавычек.
Дубли ключей
Имена объекта JSON должны быть уникальными для совместимости. Разные парсеры иначе обрабатывают повторы по-разному.
Якоря YAML
&anchor и *alias сокращают YAML, но при конвертации могут развернуться в повторяющиеся значения.
Несколько документов
Этот инструмент принимает один документ. Поток YAML с несколькими разделителями --- нужно разделить заранее.
Секреты
Обработка локальная, но скачанный или скопированный файл всё равно может содержать токены и пароли.
Быстрое сравнение
Какой формат выбрать
| Критерий | JSON | YAML |
|---|---|---|
| Основной сценарий | API, обмен между программами | Конфигурации, редактируемые человеком |
| Комментарии | Нет | Да, но не переносятся в модель данных |
| Строгость записи | Кавычки и запятые обязательны | Отступы определяют структуру |
| Несколько документов | Один JSON-текст | Возможен поток документов |
| Компактность | Предсказуемая, легко минифицируется | Обычно короче при ручном чтении |
Первоисточники
Спецификации и парсер
FAQ
Частые вопросы
Можно ли преобразовать JSON в YAML и обратно?
Да. Структурные и примитивные значения переводятся в обе стороны. Выберите формат результата и нажмите «Преобразовать».
Почему исчезли комментарии YAML?
Комментарии относятся к представлению документа и не входят в разобранную модель данных. При повторной сериализации они не восстанавливаются.
Что делает кнопка «Форматировать»?
Она разбирает исходный документ и собирает его заново в том же формате с выбранным отступом.
Почему YAML не преобразуется?
Проверьте отступы, закрывающие скобки flow-коллекций и наличие второго документа после ---. Строка и столбец ошибки появятся в статусе.
Отправляются ли документы на сервер?
Нет. Модуль js-yaml загружается с ToolKitch, а разбор и сериализация выполняются локально.