Конвертер JSON ↔ YAML
Преобразуйте JSON в YAML и YAML обратно в JSON прямо в браузере. Вставьте данные в любом из форматов и получите аккуратный результат с правильными отступами — идеально для конфигурационных файлов, CI-конвейеров и манифестов Kubernetes.
Отступ
Введите данные выше, чтобы увидеть здесь результат преобразования.
Как пользоваться Конвертер JSON в YAML
- 1
Выберите направление
С помощью переключателя выберите JSON в YAML или YAML в JSON. Кнопка обмена переносит результат во входное поле, чтобы вы могли преобразовать его обратно.
- 2
Вставьте свои данные
Вставьте JSON или YAML во входное поле. Преобразование выполняется автоматически по мере ввода, сохраняя структуру, вложенность и типы данных.
- 3
Выберите отступ
Выберите отступ в 2 или 4 пробела в соответствии со стилем вашего проекта. Результат остаётся аккуратным и правильно оформленным для любого из форматов.
- 4
Скопируйте результат
Просмотрите преобразованный результат и скопируйте его в буфер обмена — готовым для вставки в конфигурационный файл, конвейер или код.
От JSON к YAML: более чистая конфигурация без подводных камней
YAML — это надмножество JSON
Каждый корректный документ JSON является также корректным YAML — это гарантия спецификации YAML, а не совпадение. YAML добавляет поверх более дружественный человеку слой: вместо фигурных и квадратных скобок структура выражается через отступы; вместо запятых элементы располагаются каждый на своей строке; и, в отличие от JSON, YAML поддерживает комментарии. Результат читается как план-конспект, а не как свалка данных, и поэтому он господствует в файлах конфигурации.
Поскольку модели данных совпадают так тесно — у обоих есть отображения, последовательности, строки, числа, булевы значения и null, — преобразование между ними механическое и не теряет сами значения. Преобразование заново выражает то же дерево в другом поверхностном синтаксисе. Единственное, что не может пережить путешествие туда и обратно через JSON, — это комментарии, поскольку JSON негде их разместить.
Отступы — это и есть синтаксис
В YAML пробельные символы не косметические — они являются структурой. Вложенность показывается отступом дочерних ключей дальше, чем их родитель, а элементы на одной глубине должны иметь одинаковый отступ. Отображение, вложенное под ключ, становится набором строк с отступом под ним; список становится строками, каждая из которых начинается с дефиса. Ошибитесь с отступом, и вы измените смысл, а не только внешний вид, что является противоположностью того, как JSON обращается с пробельными символами.
Выберите согласованную ширину отступа — два пробела являются общим значением по умолчанию для файлов конфигурации, четыре — для некоторых внутренних стилей — и применяйте её везде. Конвертер выдаёт чистый, единообразный отступ, поэтому вы начинаете с правильной отправной точки, а не выравниваете строки вручную.
Табуляции запрещены
Это правило, которое ловит почти всех в первый раз. Спецификация YAML явно запрещает символы табуляции для отступов; вы должны использовать пробелы. Редактор, настроенный вставлять табуляцию при нажатии клавиши Tab, тихо породит файл, который не разбирается, часто с сообщением об ошибке, указывающим не на то место, потому что парсер замечает, что структура сломана, лишь строкой-двумя позже.
Если файл YAML отказывается загружаться, а отступы выглядят правильными, сначала проверьте табуляции. Настройте редактор показывать пробельные символы или преобразовывать табуляции в пробелы для файлов YAML. Преобразование из JSON полностью обходит это, поскольку сгенерированный вывод с самого начала имеет отступы из пробелов.
Проблема Норвегии и другие неожиданные булевы значения
Более старые парсеры YAML интерпретируют поразительный набор голых слов как булевы значения: не только true и false, но и yes, no, on и off в разных написаниях. Классическая катастрофа — это список кодов стран, где запись для Norway, записанная как голые буквы n и o, читается как булево значение false и тихо исчезает из ваших данных. Флаги-переключатели, записанные как on или off, могут сменить тип точно так же.
Защита — это заключение в кавычки. Любую строку, которую можно принять за булево значение, число, дату или null, следует обернуть в кавычки, чтобы парсер сохранил её как текст. Современные парсеры, построенные вокруг безопасной схемы, строже и гораздо менее подвержены этому, но привычку заключать неоднозначные скаляры в кавычки стоит сохранять, особенно для коротких кодов, строк, похожих на версии, и всего, что предоставлено пользователем.
Ещё подводные камни скаляров: числа, ведущие нули и null
Несколько других голых значений удивляют людей. Почтовый индекс или номер детали с ведущим нулём может быть прочитан как число и потерять ноль, либо быть истолкован как восьмеричное число в некоторых парсерах. Строки версий вроде 1.20 могут быть приведены к числу 1.2, отбросив концевой ноль. Слово null, пустое значение и одиночная тильда — все означают null. Как и с ловушкой булевых значений, лекарство то же самое: заключайте в кавычки всё, чья текстовая форма имеет значение.
Поскольку этот инструмент разбирает с безопасной схемой, он загружает только стандартные типы данных и никогда не конструирует произвольные объекты и не выполняет код, поэтому вставка недоверенного YAML не может ничего запустить. Это сохраняет преобразование предсказуемым: то, что вы получаете обратно, — это обычные отображения, последовательности и скаляры, без неожиданных пользовательских типов, протащенных через теги.
Где YAML действительно обитает
Читаемость YAML сделала его языком общения инфраструктуры и инструментов CI. Файлы Docker Compose, манифесты Kubernetes, конвейеры GitHub Actions и GitLab CI, плейбуки Ansible и бесчисленные файлы конфигурации приложений — всё это YAML. В каждом из них комментарии и чистые различия, которые позволяет YAML, являются настоящим преимуществом, когда человеку нужно проверить изменение в боевой конфигурации.
JSON, напротив, остаётся более подходящим для обмена между машинами по API, где его строгость и отсутствие чувствительности к пробельным символам снижают неоднозначность. Распространённый шаблон — создавать и редактировать в YAML ради удобства человека, а затем преобразовывать в JSON, когда этого требует инструмент или конечная точка, — и именно поэтому этот конвертер работает в обоих направлениях.
Блочный стиль, поточный стиль и чтение вывода
YAML может выражать одни и те же данные двумя способами. Блочный стиль раскладывает отображения и списки по строкам с отступами и является тем, что вам нужно для читаемой конфигурации. Поточный стиль использует встроенные фигурные и квадратные скобки и выглядит почти в точности как JSON, что иногда удобно для коротких, компактных значений, встроенных в больший документ. Знание обоих помогает вам читать YAML, написанный другими людьми, без путаницы.
Когда вы преобразуете здесь, вставьте JSON, выберите ширину отступа и просмотрите вывод в блочном стиле, прежде чем помещать его в репозиторий. Всё происходит локально в вашем браузере, поэтому секреты в файле конфигурации — токены, строки подключения, внутренние имена хостов — никогда не покидают ваше устройство, что делает безопасным преобразование реальных манифестов развёртывания, а не очищенных примеров.
Часто задаваемые вопросы
В чём разница между JSON и YAML?
Как преобразовать JSON в YAML?
Можно ли преобразовать YAML обратно в JSON?
Безопасно ли здесь разбирать ненадёжный YAML?
Загружаются ли мои данные на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами