Конвертировать YAML в формат JSON
Разбирает один YAML-документ библиотекой yaml (core schema YAML 1.2) и выводит его как JSON с отступами. Комментарии удаляются, якоря и алиасы разворачиваются, а значения вроде yes или 2024-01-01 остаются строками.
Отправить настройки, записанные в YAML, в API или валидатор JSON Schema, которые принимают только JSON.
Когда пригодится
- Отправить настройки, записанные в YAML, в API или валидатор JSON Schema, которые принимают только JSON.
- Проверить, как на самом деле типизирован файл CI или Kubernetes, например является ли версия строкой или числом.
Как пользоваться
- Вставьте один YAML-документ или загрузите файл .yaml/.yml.
- Если появилась ошибка, проверьте в указанной строке отступы, дублирующиеся ключи и разделители ---.
- Сверьте строки и числа в выводе JSON, затем скопируйте его.
Входной YAML
# deployment settings service: billing-api replicas: 2 version: "1.10" enabled: yes ports: - 80 - 443 env: LOG_LEVEL: info
JSON
{
"service": "billing-api",
"replicas": 2,
"version": "1.10",
"enabled": "yes",
"ports": [
80,
443
],
"env": {
"LOG_LEVEL": "info"
}
}Подробности и ограничения
Разбор выполняется в браузере. Вывод всегда JSON с отступом в 2 пробела; опции минификации нет.
Действуют правила YAML 1.2: yes/no/on/off — строки, а не boolean, а даты без кавычек остаются строками. 0o17 — восьмеричное число (15).
Ключи слияния (<<: *anchor) не объединяются; они появляются как буквальный ключ "<<". Дублирующиеся ключи в одном mapping считаются ошибкой.
Целые числа больше 2^53 теряют точность в JSON. Берите длинные ID в YAML в кавычки.
FAQ
Можно ли преобразовать файл с несколькими документами, разделёнными ---?
Нет. Несколько документов вызывают ошибку "Source contains multiple documents". Вставляйте по одному документу. Один ведущий --- допустим.
Почему enabled: yes в JSON — строка?
Парсер следует YAML 1.2, где boolean-значениями являются только true и false. Пишите true/false, если нужен boolean в JSON.
Поддерживаются ли якоря и алиасы?
Да. Алиас вроде *base заменяется копией значения с якорем. Однако ключ слияния << из YAML 1.1 не применяется.