Как пользоваться: JSON в YAML
- Вставьте JSON в панель JSON, откройте файл
.jsonили нажмите Загрузить пример. - Панель YAML обновляется мгновенно. Выберите отступ YAML в 2 или 4 пробела и при необходимости включите сортировку ключей или заключение всех строк в кавычки.
- При желании отредактируйте YAML напрямую — панель JSON тоже обновится.
- Нажмите Копировать или Скачать, чтобы сохранить
data.yaml.
Что делает конвертер JSON в YAML?
Он разбирает документ JSON и заново сериализует те же данные в формате YAML. Поскольку YAML 1.2 является надмножеством JSON, каждое значение JSON имеет точный эквивалент в YAML: объекты становятся отображениями, массивы — последовательностями (- элемент), а строки, числа, логические значения и null сохраняют свой тип. Результат обычно на 20–40% короче и гораздо удобнее для чтения и ручного редактирования, поэтому YAML стал стандартом для Kubernetes, Docker Compose, GitHub Actions, Ansible и спецификаций OpenAPI.
Пример
Этот JSON:
{
"service": "api",
"replicas": 3,
"ports": [8080, 9090],
"env": {"LOG_LEVEL": "info"}
}
превращается в такой YAML:
service: api
replicas: 3
ports:
- 8080
- 9090
env:
LOG_LEVEL: info
Как заключаются в кавычки строки
Конвертер (на основе широко используемой библиотеки js-yaml) добавляет кавычки только там, где это нужно, чтобы значение осталось строкой. Значения вроде "yes", "on", "123", "null" или "2024-01-01" берутся в кавычки, потому что записанное без кавычек yes парсеры YAML 1.1 прочитают как логическое значение (это известная «проблема Норвегии»: код страны NO превращается в false). Кавычки также ставятся для строк, содержащих : , # или начальные пробелы. Многострочные строки записываются как блочные скаляры с буквальным стилем (|-), поэтому переносы строк остаются читаемыми. Включите опцию Заключать все строки в кавычки, если последующий инструмент ожидает, что все строки будут в кавычках.
JSON и YAML: краткое сравнение
| JSON | YAML | |
|---|---|---|
| Комментарии | Не допускаются | # комментарий |
| Структура | Фигурные и квадратные скобки | Отступы |
| Кавычки | Обязательны для ключей и строк | Обычно необязательны |
| Многострочные строки | Экранирование \n | Блочные скаляры | и > |
| Повторное использование | Нет | Якоря & и алиасы * |
| Лучше всего для | API, обмена данными | Конфигураций, которые редактирует человек |
Советы по конфигурационным файлам
В YAML отступы должны быть пробелами, а не табуляцией. Два пробела — стандарт для Kubernetes и большинства CI-систем. После конвертации можно добавить комментарии, чтобы пояснить настройки, — JSON этого не позволяет. Для обратного преобразования используйте конвертер YAML в JSON, а чтобы сначала привести JSON в порядок, обработайте его через форматировщик JSON.
Также ищут как: json в yml, json2yaml, генератор yaml для kubernetes.
Инструменты, которые хорошо сочетаются с JSON в YAML
- JSON в CSV — Превратите JSON-массив в CSV-таблицу, которую удобно открыть в электронной таблице.
- JSON в TypeScript — Вставьте образец JSON, например ответ API или конфиг, и получите готовые интерфейсы TypeScript с вложенными типами, необязательными свойствами и union-типами.
- Валидатор JSON Schema — Вставьте схему и JSON, чтобы увидеть, какие значения нарушают какие правила, или сгенерируйте стартовую схему по примеру данных.
- Тестер JSONPath — Введите запрос JSONPath и сразу увидите, что он выбирает, с точным путём каждого совпадения.
Часто задаваемые вопросы
YAML является надмножеством JSON?
Почему некоторые строки в выводе YAML взяты в кавычки?
"yes", "off", "0123" или "1.0" без кавычек были бы интерпретированы как логические значения или числа, поэтому их заключают в кавычки, чтобы сохранить как строки.Можно ли конвертировать JSON в YAML для Kubernetes?
kubectl get … -o json и получите YAML, который можно сохранить как манифест. Перед повторным применением удалите поля, генерируемые сервером, например status, uid и resourceVersion.