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

Вставьте JSON слева, получите чистый YAML 1.2 справа. Работает в вашем браузере — без загрузки.

  1. Вставьте JSON в текстовое поле слева.
  2. Нажмите «Преобразовать в YAML». Вывод YAML появится справа.
  3. Скопируйте результат или нажмите «Скачать», чтобы сохранить как data.yaml.
  4. Если JSON невалиден, сообщение об ошибке указывает на проблемную позицию.
Что это делает?

Преобразует JSON в эквивалентный YAML 1.2. Объекты становятся mapping, массивы — sequence, числа/булевы/null/строки сохраняют тип. Вывод по умолчанию использует отступ в 2 пробела и ширину строки 100 столбцов. Круг JSON → YAML → JSON даёт семантически идентичные данные, хотя комментарии и нюансы порядка — это ограничения JSON-стороны, о которых стоит помнить.

Пример

Вход JSON:

{"name":"Ada","tags":["math","logic"],"active":true}

Выход YAML:

name: Ada
tags:
  - math
  - logic
active: true

Типичные ошибки JSON и как их исправить

Прежде чем этот инструмент сможет преобразовать JSON в YAML, JSON должен быть валидным. Парсер указывает строку и столбец любой ошибки — почти все ошибки «невалидный JSON» объясняются этими шаблонами.

  • Хвостовая запятая. `{"a": 1, "b": 2,}` невалиден. JSON не разрешает запятую после последнего элемента объекта или массива.
  • Одинарные кавычки. `{'a': 1}` невалиден. Строки и ключи JSON должны использовать двойные кавычки.
  • Ключи без кавычек. `{a: 1}` невалиден — литералы объектов JavaScript это позволяют, JSON — нет. Оберните ключ в двойные кавычки.
  • Комментарии. Комментарии // или /* */ не разрешены в строгом JSON. Удалите их перед конвертацией или используйте YAML-вывод (поддерживает # комментарии) и вставьте полу-вручную.
  • Умные кавычки. Копирование из текстового процессора иногда заменяет " на фигурные кавычки — JSON их отвергает. Перепечатайте или вставьте через текстовый редактор.
  • NaN / Infinity. В JSON нет представления для NaN, Infinity или -Infinity. Если в данных есть, выберите: сериализовать как null (теряете информацию) или как строку «NaN» (сохраняет смысл, но меняет тип).
Часто задаваемые вопросы

Почему в моём YAML-выводе нет комментариев?

В JSON нет синтаксиса комментариев, поэтому переносить нечего. Если нужен YAML с комментариями, отредактируйте вывод вручную после конвертации. Некоторые команды кодируют комментарии полем `_comment` в JSON, но в YAML они становятся обычными ключами — не настоящими комментариями.

Сохранится ли порядок ключей?

Да. Порядок ключей JSON-объекта сохраняется как порядок mapping в YAML — как JSON.parse + JSON.stringify в современных браузерах, которые сохраняют порядок вставки. Для алфавитного порядка отсортируйте JSON заранее.

Как форматируются глубоко вложенные структуры?

Вывод YAML использует 2-пробельный отступ на уровень, последовательности в блок-стиле (один элемент на строку, с префиксом `-`). Пустые объекты и массивы рендерятся как `{}` и `[]` соответственно — flow-стиль, потому что блок был бы неоднозначен для пустого.

Поддерживает ли это бинарные данные?

В JSON нет нативного бинарного типа, поэтому бинарные обычно уже закодированы как base64-строка в входе. Вывод YAML сохраняет эту строку. Если действительно нужен бинарный формат YAML (`!!binary`), конвертация его не выдаёт — оставайтесь на base64-строке.

Безопасно ли для чувствительного JSON, например API-ключей?

Да. Всё работает в вашем браузере. Ваш вход парсится и преобразуется JavaScript на этой странице; ни один сервер не контактируется. Проверьте в DevTools — никаких сетевых запросов при клике «Преобразовать».

Можно ли сделать круг JSON → YAML → JSON?

Для данных — да, семантика сохраняется. Для побайтового совпадения — нет: пробелы и кавычки нормализуются. Для стабильной канонической формы запустите JSON.stringify с отсортированными ключами перед вставкой.