YAML to JSON Converter
Fast and secure YAML to JSON conversion. Perfect for configuration files and data analysis.
Fast and secure YAML to JSON conversion. Perfect for configuration files and data analysis.
YAML и JSON — тесно связанные форматы — JSON технически является строгим подмножеством YAML 1.2 — и преобразование между ними обычно несложно. YAML добавляет удобные для пользователя функции, которых нет в JSON: комментарии, многострочные строки без экранирования, ссылки на привязки и псевдонимы, более гибкое цитирование и структуру на основе отступов, напоминающую естественный макет документа. Это делает YAML популярным выбором для файлов конфигурации (манифесты Kubernetes, рабочие процессы GitHub Actions, Docker Compose), в то время как JSON доминирует в полезных нагрузках API.
Преобразование YAML в JSON обычно означает отказ от удобных для человека дополнений YAML в обмен на формат, который машинам легче анализировать и который является лингва-франка API-интерфейсов HTTP. Комментарии удалены (в JSON их нет). Ссылки на привязки преобразуются в их референтные значения. Многострочные строки сворачиваются в стандартные строки JSON со встроенными символами новой строки.
Этот конвертер анализирует YAML с помощью js-yaml, наиболее широко используемой библиотеки YAML в JavaScript. Вывод генерируется с использованием JSON.stringify с необязательным отступом. Преобразование обрабатывает весь стандартный синтаксис YAML 1.2, включая стиль потока, стиль блока, скаляры, последовательности, сопоставления, привязки, псевдонимы и стандартные типы тегов.
Большинство API и многие среды программирования ожидают JSON. Файлы конфигурации, написанные в формате YAML, необходимо преобразовать в JSON при интеграции с кодом или службами, которые принимают только JSON. Инструментов для JSON также больше: jq, JSON Path, JSON Schema и широкая экосистема валидаторов и преобразователей — все они предполагают входные данные JSON.
JSON также однозначен, в отличие от YAML. Гибкость YAML создает сюрпризы при синтаксическом анализе — строки типа «no» анализируются как логическое значение false в YAML 1.1, строки версий анализируются как числа с плавающей запятой, ошибки отступов приводят к скрытым структурным изменениям. Преобразование в JSON замораживает данные в менее двусмысленной форме.
Вставьте YAML, получите JSON.
js-yaml реализует YAML 1.2 с дополнительной поддержкой особенностей YAML 1.1 (проблема «нет» как ложного, восьмеричные числа без префикса 0o). Анализатор создает дерево объектов JavaScript, используя собственные типы: числа, строки, логические значения, значения NULL, массивы и простые объекты.
JSON.stringify сериализует дерево объектов в JSON. Необязательный отступ позволяет получить красивый печатный результат; без него результатом будет компактный однострочный JSON. Специальные значения (NaN, бесконечность, неопределенное) не являются допустимыми JSON; преобразователь приводит их к нулю там, где они присутствуют.
Крайние случаи: временные метки YAML становятся строками ISO-8601 в JSON. Двоичные данные YAML (в кодировке Base64) становятся строкой. Привязки и псевдонимы преобразуются в повторяющиеся значения в JSON, поскольку JSON не имеет ссылочного синтаксиса.