Конвертер JSON в YAML
Вставьте JSON слева, получите чистый YAML 1.2 справа. Работает в вашем браузере — без загрузки.
- Вставьте JSON в текстовое поле слева.
- Нажмите «Преобразовать в YAML». Вывод YAML появится справа.
- Скопируйте результат или нажмите «Скачать», чтобы сохранить как data.yaml.
- Если JSON невалиден, сообщение об ошибке указывает на проблемную позицию.
Что это делает?
Преобразует JSON в эквивалентный YAML 1.2. Объекты становятся mapping, массивы — sequence, числа/булевы/null/строки сохраняют тип. Вывод по умолчанию использует отступ в 2 пробела и ширину строки 100 столбцов. Круг JSON → YAML → JSON даёт семантически идентичные данные, хотя комментарии и нюансы порядка — это ограничения JSON-стороны, о которых стоит помнить.
Пример
Вход JSON:
{"name":"Ada","tags":["math","logic"],"active":true} Выход YAML:
name: Ada
tags:
- math
- logic
active: true Типичные ошибки JSON и как их исправить
Прежде чем этот инструмент сможет преобразовать JSON в YAML, JSON должен быть валидным. Парсер указывает строку и столбец любой ошибки — почти все ошибки «невалидный JSON» объясняются этими шаблонами.
- Хвостовая запятая. `{"a": 1, "b": 2,}` невалиден. JSON не разрешает запятую после последнего элемента объекта или массива.
- Одинарные кавычки. `{'a': 1}` невалиден. Строки и ключи JSON должны использовать двойные кавычки.
- Ключи без кавычек. `{a: 1}` невалиден — литералы объектов JavaScript это позволяют, JSON — нет. Оберните ключ в двойные кавычки.
- Комментарии. Комментарии // или /* */ не разрешены в строгом JSON. Удалите их перед конвертацией или используйте YAML-вывод (поддерживает # комментарии) и вставьте полу-вручную.
- Умные кавычки. Копирование из текстового процессора иногда заменяет " на фигурные кавычки — JSON их отвергает. Перепечатайте или вставьте через текстовый редактор.
- NaN / Infinity. В JSON нет представления для NaN, Infinity или -Infinity. Если в данных есть, выберите: сериализовать как null (теряете информацию) или как строку «NaN» (сохраняет смысл, но меняет тип).
Часто задаваемые вопросы
Почему в моём YAML-выводе нет комментариев?
В JSON нет синтаксиса комментариев, поэтому переносить нечего. Если нужен YAML с комментариями, отредактируйте вывод вручную после конвертации. Некоторые команды кодируют комментарии полем `_comment` в JSON, но в YAML они становятся обычными ключами — не настоящими комментариями.
Сохранится ли порядок ключей?
Да. Порядок ключей JSON-объекта сохраняется как порядок mapping в YAML — как JSON.parse + JSON.stringify в современных браузерах, которые сохраняют порядок вставки. Для алфавитного порядка отсортируйте JSON заранее.
Как форматируются глубоко вложенные структуры?
Вывод YAML использует 2-пробельный отступ на уровень, последовательности в блок-стиле (один элемент на строку, с префиксом `-`). Пустые объекты и массивы рендерятся как `{}` и `[]` соответственно — flow-стиль, потому что блок был бы неоднозначен для пустого.
Поддерживает ли это бинарные данные?
В JSON нет нативного бинарного типа, поэтому бинарные обычно уже закодированы как base64-строка в входе. Вывод YAML сохраняет эту строку. Если действительно нужен бинарный формат YAML (`!!binary`), конвертация его не выдаёт — оставайтесь на base64-строке.
Безопасно ли для чувствительного JSON, например API-ключей?
Да. Всё работает в вашем браузере. Ваш вход парсится и преобразуется JavaScript на этой странице; ни один сервер не контактируется. Проверьте в DevTools — никаких сетевых запросов при клике «Преобразовать».
Можно ли сделать круг JSON → YAML → JSON?
Для данных — да, семантика сохраняется. Для побайтового совпадения — нет: пробелы и кавычки нормализуются. Для стабильной канонической формы запустите JSON.stringify с отсортированными ключами перед вставкой.