Конвертер YAML ↔ JSON

Конвертация YAML в JSON и JSON в YAML: якоря, комментарии, версии YAML 1.1 и 1.2, ошибки со строкой.

Данные обрабатываются в браузере и никуда не отправляются

Направление
Версия YAML
Отступ

Ввод

Перетащите файл сюда или выберите на диске

Результат

Здесь появится результат

Введите данные слева - результат появится сразу

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

Выберите направление, вставьте текст слева - результат появляется сразу. 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?

YAML - надмножество JSON, удобное для человека: отступы вместо скобок, комментарии, якоря, многострочные строки. Поэтому он популярен в конфигурациях (Kubernetes, CI, OpenAPI). JSON строже и проще для машин, поэтому именно он чаще идёт по сети.

Какую версию YAML выбрать?

Почти всегда 1.2: так работают современные парсеры. Версия 1.1 нужна, если файл читает библиотека, которая её использует (многие реализации в Python, Ruby, Java и в старых версиях инструментов). Если сомневаетесь, берите ключ значений в кавычки - тогда результат одинаков в обеих версиях.

Почему в YAML появились кавычки, которых не было в JSON?

Инструмент берёт строку в кавычки, когда без них YAML прочитал бы её как другой тип: "123", "true", "null", "1.10" и подобные. Это сохраняет тип значения при обратной конвертации.

Можно ли конвертировать спецификацию OpenAPI?

Да, OpenAPI одинаково записывается в YAML и в JSON. Для проверки спецификации и просмотра её в виде документации используйте валидатор OpenAPI на этом сайте.

Что будет, если в YAML несколько документов?

Документы разделяются строкой «---». В JSON они собираются в массив, о чём приходит предупреждение. Один документ превращается в обычное значение, без массива.

Похожие инструменты

Курс «Проектирование API и интеграций»

Глубокое погружение в REST, gRPC, SOAP, проектирование баз данных и брокеры сообщений (Kafka, RabbitMQ). Делегирование рутины нейросетям (ИИ). Перестанете бояться технических собеседований и начнете говорить с разработчиками на одном языке. Курс собран так, чтобы пробить зарплатный потолок и вырасти в грейде - ученики тому подтверждение.

Перейти к курсу на Stepik