Конвертер YAML в JSON Online
Конвертируйте YAML в JSON прямо в браузере. Идеально для валидации конфигураций Docker, Kubernetes или GitHub Actions.
{
"name": "John Doe",
"age": 30,
"active": true,
"tags": [
"developer",
"javascript"
],
"address": {
"city": "Madrid",
"zip": "28001"
}
}Для чего это нужно
YAML в JSON: мгновенная валидация DevOps-конфигураций
Docker и Kubernetes
Конвертируйте docker-compose.yml или манифесты Kubernetes в JSON для валидации структур или использования с инструментами, работающими только с JSON.
Отладка CI/CD
Валидируйте рабочие процессы GitHub Actions, пайплайны GitLab CI или плейбуки Ansible, конвертируя в JSON для просмотра разобранной структуры.
100% конфиденциально
Ваша YAML-конфигурация обрабатывается в браузере. Никогда не покидает ваше устройство. Идеально для конфигураций с секретами.
Обнаружение ошибок
Синтаксические ошибки YAML (отступы, табуляции, недопустимые типы) отображаются чётко до конвертации.
Как это работает
Три шага — никаких сложностей
Вставьте ваш YAML
Вставьте ваш YAML-файл: docker-compose.yml, Kubernetes deployment, рабочий процесс GitHub Actions или любую YAML-конфигурацию.
Конвертация и валидация
Конвертер разбирает YAML согласно спецификации YAML 1.2 и мгновенно генерирует валидный JSON, показывая синтаксические ошибки при их обнаружении.
Скопируйте получившийся JSON
Скопируйте форматированный JSON для использования в вашем API, инструменте конфигурации или для валидации структуры YAML.
FAQ
Остались вопросы?
YAML (YAML Ain't Markup Language, рекурсивная аббревиатура) — это человекочитаемый язык сериализации данных. Спецификация YAML 1.2 была опубликована в июле 2009 года на yaml.org и является надмножеством JSON: любой валидный JSON также является валидным YAML. YAML широко используется в конфигурациях DevOps-инструментов (Docker Compose, Kubernetes, Ansible, Terraform, GitHub Actions, GitLab CI), поскольку его синтаксис на основе отступов более читабелен, чем JSON для длинных иерархических конфигураций. В отличие от JSON, YAML поддерживает комментарии (строки, начинающиеся с #), многострочные строки, якоря и псевдонимы для повторного использования данных, а также дополнительные типы данных, такие как даты ISO 8601.
YAML предлагает два стиля многострочных строк. Буквальный стиль (отмечен символом |) сохраняет переносы строк точно в том виде, как они написаны — полезен для скриптов оболочки, содержимого файлов или форматированного текста. Сложенный стиль (отмечен символом >) преобразует переносы строк в пробелы и сохраняет только разрывы абзацев (пустые строки) — полезен для длинных описаний. В JSON оба стиля становятся строками с \n для буквальных переносов строк или без переносов для сложенного стиля. Модификатор chomp (|- для strip, |+ для keep) управляет тем, сохраняется ли конечный перенос строки.
Да. Якоря YAML (&имя) и псевдонимы (*имя) — способ повторного использования узлов в документе. В docker-compose.yml часто определяют общие переменные среды как якорь и ссылаются на них в нескольких сервисах с помощью <<: *якорь (merge key). Наш конвертер раскрывает все якоря и псевдонимы перед генерацией JSON, создавая полную структуру без ссылок — правильное поведение, поскольку JSON не имеет эквивалента якорям YAML.
Нет. JSON (RFC 7159/RFC 8259) не поддерживает комментарии. Комментарии YAML (текст после # до конца строки) отбрасываются при разборе. Это фундаментальное ограничение формата JSON, а не конвертера. Если вам нужно сохранить документацию, связанную с полями конфигурации, рассмотрите использование JSON Schema (который допускает поля 'description') или сохраните исходный YAML как источник истины и генерируйте JSON по требованию.
YAML использует пробелы (никогда не табуляцию) для отступов, указывающих иерархию. Спецификация YAML 1.2 не фиксирует конкретное количество пробелов, но наиболее распространённым соглашением является 2 пробела. Последовательность внутри одного уровня иерархии критически важна. Смешивание табуляций и пробелов является синтаксической ошибкой в YAML (в отличие от Python, который принимает табуляции). Наиболее распространённая ошибка — случайное смешивание табуляций с пробелами, особенно при редактировании YAML в редакторах, которые по-разному расширяют табуляции.
Да. Манифесты Kubernetes (Deployments, Services, ConfigMaps, Ingress) и файлы docker-compose.yml являются стандартным YAML и корректно конвертируются в JSON. Это полезно для валидации структуры манифеста, передачи его инструментам, принимающим только JSON (некоторые Kubernetes API-клиенты, инструменты валидации JSON Schema или процессоры типа jq), или отладки неожиданного поведения, вызванного тонкими ошибками YAML. Kubernetes API принимает как YAML, так и JSON; внутренне kubectl конвертирует YAML в JSON перед отправкой запроса к API-серверу.
Конвертировать YAML в JSON: валидация конфигураций DevOps и Kubernetes в браузере
YAML (YAML Ain't Markup Language) стал доминирующим форматом конфигурации в современной экосистеме DevOps. Docker Compose (представлен в 2014 году, теперь входит в Docker Engine начиная с версии 20.10), Kubernetes (чей API принимает манифесты в YAML или JSON с момента запуска Google в 2014 году), GitHub Actions (запущен в ноябре 2019 года), GitLab CI/CD, Ansible (Red Hat, 2012), Terraform (HashiCorp, 2014) и чарты Helm — все используют YAML в качестве основного формата конфигурации. Спецификация YAML 1.2, опубликованная на yaml.org в июле 2009 года, устанавливает, что YAML является строгим надмножеством JSON, то есть любой JSON-документ также является валидным YAML-документом. Это делает конвертацию между двумя форматами семантически совершенной: потери структурной информации нет, только различия в представлении.
Конвертация YAML в JSON особенно полезна в нескольких рабочих процессах DevOps: отладка CI/CD пайплайнов, где ошибка отступа вызывает неожиданное поведение (представление в JSON делает структуру явной и недвусмысленной); использование инструментов, принимающих только JSON в качестве входных данных (некоторые REST API-клиенты Kubernetes, инструменты валидации JSON Schema или процессоры типа jq, нативно работающие с JSON); миграция конфигураций между инструментами с разными форматами; и валидация того, что YAML разбирается ожидаемым образом, особенно при использовании расширенных возможностей, таких как якоря (&), псевдонимы (*), merge key (<<:), явные типы (!!str, !!int, !!bool) или многострочные строки с буквальным (|) и сложенным (>) блоками.
Разбор YAML имеет некоторые известные сложности, которые привели к «Проблеме Норвегии»: в YAML 1.1 (используемом в PyYAML до версии 6.0 и libyaml до 0.2.5) значение 'NO' интерпретировалось как булево false, что приводило к некорректному разбору кода страны Норвегии ('NO'). YAML 1.2 (спецификация от июля 2009 года) исправила это: только 'true' и 'false' (без учёта регистра) являются булевыми значениями, а значения 'yes', 'no', 'on', 'off', которые YAML 1.1 трактовал как булевы, теперь являются строками. Наш конвертер использует библиотеку, реализующую YAML 1.2, гарантируя корректное современное поведение. Для проектов, использующих PyYAML, важно обновиться до версии 6.0+ (выпущена в марте 2022 года), поскольку в ней добавлена поддержка безопасного загрузчика, соответствующего YAML 1.2, через yaml.safe_load().