Конвертер JSON ↔ YAML
Конвертер JSON ↔ YAML
Редактируйте JSON и YAML бок о бок с мгновенной двусторонней синхронизацией. Поддержка настройки отступов, сортировки ключей и разделения на мульти-документы YAML. Полезно для конфигураций Kubernetes/Helm/CI и отладки API.
🚀 Быстрый старт
- Вставьте или введите JSON в левом редакторе, а YAML в правом обновится автоматически.
- Вы также можете ввести YAML справа, а JSON слева обновится автоматически.
- Синхронизация полностью двунаправленная. Переключатель режима не требуется: отредактируйте любую сторону, и другая сторона мгновенно обновится.
- Используйте верхнюю панель инструментов, чтобы установить отступ JSON/YAML, включить сортировку ключей и переключить вывод нескольких документов YAML.
- Нажмите Tab в редакторе, чтобы вставить отступ вместо перемещения фокуса.
- В правом верхнем углу каждого редактора есть кнопки «Копировать» и «Очистить». Очистка любой стороны очищает обе стороны.
📌 Частые сценарии
- Разработка Kubernetes: конвертируйте манифесты ресурсов K8s между YAML и JSON для проверки структуры из любого представления.
- Отладка значений Helm: преобразуйте файлvalues.yaml в JSON для проверки типов и вложенности в вашей IDE.
- Конвейеры CI/CD: быстро конвертируйте фрагменты между действиями GitHub (YAML) и системами CI, использующими JSON.
- Отладка API: конвертируйте полезные данные JSON в YAML для более четкого иерархического представления.
- Миграция конфигурации: пакетное преобразование файлов конфигурации между YAML и JSON.
- Форматирование и проверка: проверьте синтаксис JSON/YAML посредством двусторонней синхронизации с указанием местоположения ошибки в строке/столбце.
🧭 Рекомендации по использованию
- Отступ JSON в два пробела работает в большинстве случаев; используйте 4 пробела для файлов глубокой вложенности или файлов значений Helm.
- Включите сортировку ключей, чтобы выводить ключи объектов в алфавитном порядке. Так проще сравнивать различия в конфигурации.
- Если корень JSON представляет собой массив, включите многодокументный YAML, чтобы разделить каждый элемент на отдельный документ (---), что полезно для файлов K8s с несколькими ресурсами.
- Если введенные данные недействительны, редактор отображает ошибку с подробностями строки/столбца; другая сторона сохраняет свой последний действительный контент.
- Для большого содержимого сначала вставьте его и дождитесь синхронизации, а затем продолжите редактирование, чтобы избежать чрезмерного повторного преобразования.
⚠️ Ограничения и совместимость
- Анализ YAML соответствует спецификации YAML 1.2. Некоторые особенности поведения YAML 1.1 (например, автоматическое логическое преобразование «да/нет») могут отличаться.
- Числа JSON соответствуют ограничениям JavaScript IEEE 754. Целые числа, превышающие 53-битную безопасную точность, могут потерять точность.
- Якоря и псевдонимы YAML (&, *, <<) расширяются до конкретных значений при преобразовании в JSON; ссылки не могут быть сохранены.
- Комментарии YAML удаляются во время преобразования, поскольку JSON не поддерживает комментарии.
🔒 Конфиденциальность и безопасность
- Вся обработка происходит локально в вашем браузере. Ваши данные никогда не покидают ваше устройство.
❓ Частые вопросы
В чем разница между JSON и YAML и когда мне следует использовать каждый из них?
JSON и YAML могут представлять одни и те же типы данных (объекты, массивы, строки, числа), но их синтаксис различается: • JSON использует фигурные скобки и двойные кавычки, имеет более строгий синтаксис и не поддерживает комментарии. • YAML использует отступы для иерархии, более удобен для чтения и поддерживает комментарии, но чувствителен к пробелам. Эмпирическое правило: • Для API и межмашинного обмена данными отдавайте предпочтение JSON. • Для конфигураций Kubernetes/Helm/CI, которые люди часто редактируют, отдавайте предпочтение YAML. • Вы можете конвертировать между ними, не меняя модель данных.
Почему значения «да/нет/вкл/выкл» в YAML становятся истинными/ложными после преобразования?
Это происходит из-за устаревшего поведения YAML 1.1, где да/нет/вкл/выкл/y/n могут анализироваться как логические значения. Этот инструмент соответствует YAML 1.2, где только true/false являются логическими значениями. Если вам нужны строковые значения, заключите их в кавычки (например, «да»).
Почему комментарии YAML исчезают после преобразования в JSON?
JSON (RFC 8259) не допускает комментариев. Таким образом, комментарии YAML не могут быть сохранены при преобразовании YAML → JSON и не могут быть восстановлены при обратном преобразовании. Сохраните исходный файл YAML, если комментарии имеют значение.
Что означает --- в YAML?
--- — разделитель документов YAML, используемый для хранения нескольких независимых документов в одном файле. Это часто встречается в Kubernetes, где один файл может содержать определения Deployment, Service и ConfigMap. Этот инструмент считывает многодокументный YAML как массив JSON, а также может разбивать массив JSON обратно на отдельные документы YAML.
Что делать, если после преобразования теряется числовая точность?
JavaScript использует числа двойной точности IEEE 754. Безопасные целые числа находятся в диапазоне от -(2^53-1) до 2^53-1 (±9007199254740991). Целые числа большего размера (например, идентификаторы Snowflake или 64-битные метки времени) могут потерять точность. Чтобы сохранить точные значения, сохраняйте их в виде строк, например «9007199254740992».
Что происходит с якорями YAML (& и *) во время преобразования?
Якоря (&name) и псевдонимы (*name) — это функции повторного использования, специфичные для YAML. JSON не имеет эквивалентного ссылочного механизма, поэтому псевдонимы во время преобразования расширяются до полных копий. Это преобразование с потерями, и исходную структуру привязки невозможно восстановить автоматически.