Конвертер JSON в YAML - Преобразование в обе стороны онлайн
Преобразовать JSON в YAML и обратно
Преобразование между JSON и YAML
JSON и YAML описывают одни и те же данные — словари, списки, строки, числа, булевы значения и null — двумя синтаксисами. На JSON говорят API и файлы пакетов; на YAML написаны конфигурации Docker, Kubernetes, GitHub Actions и CI-конвейеров. Этот конвертер мгновенно переводит одно в другое и берёт на себя детали, на которых спотыкаются: кавычки, отступы и странные слова, которые YAML считает булевыми.
Шаги
- 1 Выберите направление и вставьте документ в верхнее поле. Результат появляется ниже по мере ввода.
- 2 Задайте ширину отступа — 2 пробела принято и в YAML, и в большинстве руководств по стилю JSON.
- 3 Скопируйте результат, скачайте его файлом или сделайте вывод новым вводом, чтобы проверить обратимость.
Что меняется между форматами
YAML отбрасывает фигурные и квадратные скобки и большую часть кавычек, а структуру задаёт отступами, поэтому объект JSON в 40 строк становится документом YAML в 25 строк. Порядок ключей сохраняется. Списки становятся пунктами с дефисом; вложенные объекты — блоками с отступом; пустой объект или список так и записываются {} и []. В обратную сторону теряются комментарии YAML, потому что в JSON комментариев нет.
Почему некоторые строки выходят в кавычках
В YAML yes, no, on, off, true или null без кавычек читаются как булево значение или null, а 123 или 1.0 — как число. Строка, похожая на одно из них, должна быть в кавычках, иначе на обратном пути она сменит тип — классический пример: код страны NO превращается в false. Конвертер заключает в кавычки именно такие строки, а также всё с пробелами по краям, двоеточием с пробелом или специальным символом в начале; остальное остаётся без кавычек для читаемости.
Многострочные строки
Строка с переводами строк записывается как блочный скаляр YAML: вертикальная черта в строке ключа и текст с отступом ниже, с минусом, если у строки нет завершающего перевода. Так выглядят манифесты Kubernetes и файлы CI, и такая запись читается обратно в точно ту же строку.
Отступы и совместимость
Конвертер пишет YAML 1.2, который читает любой современный парсер — PyYAML, js-yaml, Go yaml, Ruby Psych. Вложенные ключи отступают на выбранную ширину; ключи объекта внутри списка в любом случае стоят через два пробела после дефиса, как требует спецификация. Табуляция не используется никогда.