Перейти к содержанию

Конвертер JSON ↔ YAML

Конвертер JSON ↔ YAML

Редактируйте JSON и YAML бок о бок с мгновенной двусторонней синхронизацией. Поддержка настройки отступов, сортировки ключей и разделения на мульти-документы YAML. Полезно для конфигураций Kubernetes/Helm/CI и отладки API.

Конвертер JSON ↔ YAML

🚀 Быстрый старт

  • Вставьте или введите 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 не имеет эквивалентного ссылочного механизма, поэтому псевдонимы во время преобразования расширяются до полных копий. Это преобразование с потерями, и исходную структуру привязки невозможно восстановить автоматически.