Перейти к содержимому
Инструменты
Загрузка интерфейса…

Конвертер 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 выбрать?

Версию YAML нужно выбирать под парсер принимающей системы. Для новых документов обычно подходит YAML 1.2; при обмене со старой системой проверьте, не использует ли она YAML 1.1. Чтобы строка вроде yes, on или номера версии не превратилась в другой тип, заключите её значение в кавычки.

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

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

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

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

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

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

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

Курс «Проектирование архитектуры и интеграций (API, брокеры) + ИИ»

REST, gRPC, SOAP, GraphQL и JSON-RPC, архитектурные подходы, SQL и NoSQL, брокеры сообщений и работа с ИИ. Программа курса помогает систематизировать знания об API и интеграциях; содержание и условия обучения смотрите на Stepik.

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