Конвертер YAML в JSON
Вставьте YAML слева, получите JSON справа. Работает полностью в вашем браузере — без загрузки и регистрации.
- Вставьте свой YAML в текстовое поле слева.
- Нажмите «Преобразовать в JSON». Вывод появится справа.
- Скопируйте результат или нажмите «Скачать», чтобы сохранить как data.json.
- Если конвертация не удалась, сообщение об ошибке указывает на проблемную строку.
Что это делает?
Преобразует документы YAML 1.2 в эквивалентный JSON. Mapping становятся объектами, sequence — массивами, скаляры типизируются как числа, булевы, null или строки по правилам YAML. Anchor и alias разрешаются во время конвертации. Многодокументные потоки (разделённые `---`) уплощаются в массив документов.
Пример
Вход YAML:
name: Ada
tags:
- math
- logic
active: true Выход JSON:
{
"name": "Ada",
"tags": [
"math",
"logic"
],
"active": true
} Типичные ошибки YAML и как их исправить
YAML чувствителен к пробелам, и это источник большинства сообщений «не удалось разобрать». Парсер указывает строку и столбец ошибки — вот шаблоны, на которые стоит смотреть.
- Табы вместо пробелов. YAML 1.2 запрещает табы в отступах. Замените каждый таб пробелами — у большинства редакторов есть команда «преобразовать табы в пробелы».
- Смешанные уровни отступов. Дочерний элемент с отступом 2 пробела под соседом с отступом 4 пробела вызовет ошибку. Выберите одну ширину отступа (обычно 2 пробела) и используйте её во всём документе.
- Строки, выглядящие как булевы. В YAML 1.1 `yes`, `no`, `on`, `off` парсятся как булевы — неожиданно в кодах стран (ловушка «NO») и строках версий. Заключите значение в кавычки: `country: "NO"`. js-yaml по умолчанию использует YAML 1.2, где это исправлено, но реальные входы всё ещё попадают в проблему.
- Спецсимволы без кавычек. Значения, начинающиеся с `- `, `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` ``, нужно брать в кавычки. Самый безопасный шаблон: заключайте в кавычки любую строку с пунктуацией.
- Незакрытая кавычка. Пропущенная закрывающая `"` или `\'` заставляет парсер считать остаток файла частью строки до следующей кавычки — обычно выдаётся запутанный номер строки далеко от реальной ошибки.
- Несовпадение anchor / alias. Alias (`*name`), ссылающийся на необъявленный anchor (`&name`), вызывает ошибку парсинга. Проверьте, что у каждого alias есть соответствующий anchor, объявленный ранее в документе.
Часто задаваемые вопросы
Поддерживает ли это причуды YAML 1.1, например «норвежскую проблему»?
Нет — и это специально. Мы используем js-yaml в режиме YAML 1.2, где `NO` без кавычек парсится как строка «NO», а не булева false. Если у вас входы, которые зависят от булевых YAML 1.1, заключайте их в кавычки явно перед вставкой. Смешение двух спецификаций в одном инструменте незаметно неправильно переводило бы ваши данные.
Что происходит с YAML anchor и alias?
Они разрешаются во время конвертации. Получаемый JSON содержит дублированные значения как обычные данные — anchor не сохраняются в JSON, потому что у JSON нет эквивалентного синтаксиса ссылок. Если нужны ссылки, JSON — не подходящий целевой формат.
Можно ли конвертировать многодокументные YAML-файлы?
Да. YAML-файлы с несколькими документами, разделёнными `---`, конвертируются в JSON-массив, где каждый документ становится одним элементом. Если файл — один документ, он конвертируется в один JSON-объект или значение на верхнем уровне.
Почему моя строка даты выходит в формате ISO?
У YAML есть нативный тип timestamp (`2025-12-31`). Парсер читает его как JavaScript Date, который сериализуется в JSON как строка ISO 8601. Чтобы сохранить исходный текст, заключите значение в кавычки в YAML: `release: "2025-12-31"`.
Безопасно ли для чувствительных YAML-конфигов?
Да. Всё работает в вашем браузере — ваш ввод парсится и конвертируется JavaScript на этой странице, не отправляется ни на какой сервер. Никаких логов, никакой аналитики над самим вводом, никакого хранения. Проверьте в DevTools браузера: ноль сетевых запросов при клике «Преобразовать».
Какого размера YAML-файл может обработать?
До предела памяти браузера, но текстовая область становится медленной выше ~10 МБ YAML. Для больших входов конвертируйте по частям или используйте ту же библиотеку (js-yaml) в командной строке.