Конвертация YAML в JSON и JSON в YAML: якоря, комментарии, версии YAML 1.1 и 1.2, ошибки со строкой.
Данные обрабатываются в браузере и никуда не отправляются
Здесь появится результат
Введите данные слева - результат появится сразу
Выберите направление, вставьте текст слева - результат появляется сразу. YAML → JSON раскрывает якоря и ссылки, склеивает несколько документов в массив и предупреждает о том, что при конвертации теряется (комментарии, особые значения). JSON → YAML строит читаемый YAML с выбранным отступом. Ошибки показываются со строкой и столбцом, клик по ним переносит курсор к месту.
Версия YAML влияет на то, как читаются значения без кавычек: в YAML 1.2 (по умолчанию) yes, no, on и off - обычные строки, в YAML 1.1 (его до сих пор используют многие библиотеки) - булевы значения. Если файл читает старый парсер, выберите 1.1: тогда при записи такие строки получат кавычки.
Вот что чаще всего ломает YAML и его конвертацию:
Табуляция вместо пробелов
Для отступов структуры YAML используются пробелы, не табуляция. Табуляция внутри некоторых строковых значений допустима, но в отступах приводит к ошибкам разбора.
Проблема Норвегии: NO, yes, on
В YAML 1.1 значения yes, no, on, off (и страна NO) читаются как булевы. Код страны NO превращается в false. Если значение должно остаться строкой, берите его в кавычки: "NO".
Версия 1.10 превращается в 1.1
Запись version: 1.10 без кавычек - это число 1.1. Номера версий, телефоны и индексы с ведущими нулями всегда пишите в кавычках.
Двоеточие и решётка в значениях
Значение с «: » внутри или с « #» (пробел и решётка) нужно брать в кавычки, иначе YAML решит, что началось новое отображение или комментарий.
Комментарии теряются
В JSON нет комментариев, поэтому при переходе YAML → JSON они пропадают, а при обратной конвертации не восстанавливаются. Инструмент предупреждает об этом.
Якоря и merge копируются
Ссылки &якорь и *ссылка, а также << для слияния при переходе в JSON превращаются в обычные копии значений: связь между ними теряется, а размер документа может заметно вырасти.
Нет - 100%. Сайт целиком статический, у него нет серверной части. Конвертация выполняется прямо в вашем браузере.
YAML - надмножество JSON, удобное для человека: отступы вместо скобок, комментарии, якоря, многострочные строки. Поэтому он популярен в конфигурациях (Kubernetes, CI, OpenAPI). JSON строже и проще для машин, поэтому именно он чаще идёт по сети.
Версию YAML нужно выбирать под парсер принимающей системы. Для новых документов обычно подходит YAML 1.2; при обмене со старой системой проверьте, не использует ли она YAML 1.1. Чтобы строка вроде yes, on или номера версии не превратилась в другой тип, заключите её значение в кавычки.
Инструмент берёт строку в кавычки, когда без них YAML прочитал бы её как другой тип: "123", "true", "null", "1.10" и подобные. Это сохраняет тип значения при обратной конвертации.
Да, OpenAPI одинаково записывается в YAML и в JSON. Для проверки спецификации и просмотра её в виде документации используйте валидатор OpenAPI на этом сайте.
Документы разделяются строкой «---». В JSON они собираются в массив, о чём приходит предупреждение. Один документ превращается в обычное значение, без массива.
REST, gRPC, SOAP, GraphQL и JSON-RPC, архитектурные подходы, SQL и NoSQL, брокеры сообщений и работа с ИИ. Программа курса помогает систематизировать знания об API и интеграциях; содержание и условия обучения смотрите на Stepik.