Что делает инструмент
Конвертация YAML в JSON — частая задача DevOps и разработки. JSON универсальнее (REST API, валидаторы, JS-приложения), YAML удобнее для конфигов (k8s, Docker Compose, CI/CD pipelines). Когда нужно проверить структуру манифеста через JSON Schema или импортировать конфиг в инструмент, который не понимает YAML — конвертируем.
Через библиотеку js-yaml в браузере с live-обновлением. Файл не покидает устройство — критично для конфигов с секретами и токенами.
Сценарии использования
- k8s-манифест → JSON Schema валидация. Большинство JSON Schema валидаторов принимают только JSON. Конвертируем YAML-pod-spec → проверяем.
- Docker Compose → программный анализ. Если пишете скрипт для парсинга
docker-compose.ymlна Python/Node — проще читать JSON. - OpenAPI YAML → импорт в Postman. Postman нативно поддерживает оба, но некоторые инструменты только JSON.
- GitHub Actions YAML → bug report. При обращении в support иногда требуют отправить конфиг в JSON-формате.
- YAML → быстрое чтение в DevTools console. JSON хорошо сворачивается в Chrome DevTools.
- Конвертация массива из YAML в JSON для импорта в БД. PostgreSQL / MongoDB напрямую принимают JSON-массивы.
Подводные камни YAML → JSON
- Комментарии теряются. JSON их не поддерживает. Если важны — отдельно сохраните или используйте JSONC.
- Anchors / aliases разворачиваются.
&base ... *baseстанут двумя одинаковыми объектами в JSON. Размер JSON может стать больше. - Quoted vs unquoted. YAML «
yes» — это boolean true. Если хотели строку — нужно «"yes"». В JSON получитеtrue, не"yes". - Дата. YAML 1.1 интерпретировал ISO 8601 даты как Date-объекты. js-yaml в YAML 1.2 — оставляет как строку, что обычно правильнее.
- Версии. js-yaml пишет YAML 1.2 (более строгий). Старые YAML 1.1-файлы могут парситься чуть иначе (например,
off= false в 1.1, но строка «off» в 1.2 при использовании flowstyle).
- js-yaml — YAML 1.2 parser. Vitaly Puzrin. github.com/nodeca/js-yaml. 2024.
- Kubernetes YAML manifests. CNCF. kubernetes.io/docs/concepts/configuration. 2024.
- JSON specification (RFC 8259). IETF. rfc-editor.org/rfc/rfc8259. 2017.
