YAML в JSON и обратно — типы, multi-doc, локально
Преобразуйте YAML в JSON или JSON в YAML в браузере. Шаги: выберите направление, вставьте конфиг, при необходимости включите безопасные типы JSON, затем скопируйте или скачайте. Несколько документов через --- становятся JSON-массивом. Пример: короткий service map → JSON с отступами для API-клиента — вставка остаётся локальной.
Как пользоваться
Выберите YAML → JSON или JSON → YAML. Преобразование идёт через js-yaml во вкладке. Потоки из нескольких документов, разделённых ---, становятся JSON-массивом; один документ остаётся одним JSON-значением. Ошибки YAML показывают строку и столбец, если парсер отдаёт mark.
Правила, которые стоит ждать
Что ожидать при преобразовании: как типизируются значения без кавычек, как многодокументный YAML отображается в JSON и где обратное преобразование может потерять комментарии или форматирование.
- Типы: со схемой DEFAULT некавыченные yes/no/on/off и часть «датоподобных» скаляров могут стать boolean или другими типами. JSON-safe схема держит некавыченные скаляры строками, пока тип не задан явно.
- Multi-doc: loadAll — один документ → это JSON-значение; два и больше → массив. Мы не оставляем молча только первый документ.
- Потери при круговом пути: комментарии исчезают (в JSON их нет); якоря/алиасы разворачиваются в дубликаты; порядок ключей и стиль после dump могут измениться.
- Приватность: вставка не загружается на сервер. Запрос js-yaml с CDN скачивает только код библиотеки, не текст вашего конфига.
Пример
YAML `имя: demo` и список `элементы: [a, b]` дают JSON `{"имя":"demo","элементы":["a","b"]}`. JSON `{"title":"Привет","count":2}` dump’ится в YAML с отступами. Граница: голое `flag: yes` при DEFAULT становится boolean true; включите безопасные типы JSON, чтобы оставить строку "yes".
Когда полезно
- DevOps: превратить multi-resource Kubernetes YAML (через ---) в JSON-массив для скриптов.
- Разработка: переложить JSON-тело API в читаемый YAML перед ручной правкой конфига.
- Data / AI-пайплайны: связать YAML-параметры, которые правят люди, с инструментами только под JSON.
Frequently asked questions
Можно ли круговой путь без потерь?
Нет. Комментарии в JSON не переживают. Якоря разворачиваются в повторяющиеся значения. Dump JSON обратно в YAML не вернёт исходные комментарии и имена якорей.
Как обрабатывается multi-document YAML?
Документы, разделённые ---, разбираются через loadAll. Один документ → одно JSON-значение; два и больше → массив. Документы после первого не отбрасываем.
Станут ли голые yes или no boolean?
При схеме js-yaml по умолчанию часто да — некавыченные yes/no/on/off могут стать boolean. Включите «Безопасные типы JSON», чтобы оставить такие скаляры строками, если тип не задан явно.
Уходит ли вставка из браузера?
Преобразование остаётся во вкладке. CDN может отдавать js-yaml; это загрузка кода, а не upload вашего YAML или JSON.
Откуда берутся номера строк в ошибках?
Некорректный YAML даёт mark парсера со строкой и столбцом, если они доступны. Некорректный JSON сообщает JSON.parse без YAML-подобных mark.