UltKit
Изображения11
PDF13
Документы и данные7
Видео6
Аудио4
Другие инструменты22

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

Переведите конфигурацию YAML, спецификации OpenAPI и файлы CI в JSON, который прочитает любой парсер, API или валидатор схем. Загрузите файлы .yaml или .yml и скачайте JSON с отступами.

Конвертер данных

или перетащите сюда файлы CSV, TSV, TXT … ·

Макс. 95 MB на файл· До 20 файлов· Удаляются через 30 минут

Вывод

Файлы обрабатываются на наших серверах и удаляются через 30 минут.

Как пользоваться инструментом

  1. 1

    Загрузите файлы YAML

    Добавьте файлы .yaml или .yml: до 20 за раз, не больше 95 MB каждый. Имена сохраняются: JSON-файлы получат те же имена с новым расширением.

  2. 2

    Выберите формат: с отступами или компактный

    Параметр Форматирование с отступами включен: JSON выводится с отступами, так его удобно читать и проверять в код-ревью. Чтобы получить файл в одну строку для вставки в тело запроса, отключите его в разделе Расширенные настройки.

  3. 3

    Конвертируйте и используйте

    Нажмите Преобразовать в JSON, скачайте результат и передайте файл в API, валидатор или скрипт, для которого он был нужен.

Зачем разработчики переводят YAML в JSON

YAML написан для людей: отступы вместо фигурных скобок, комментарии, большинство строк без кавычек. Поэтому в нем пишут манифесты Kubernetes, workflow GitHub Actions, файлы Docker Compose и спецификации OpenAPI, которые команды правят вручную. JSON написан для программ. В стандартной библиотеке каждого языка есть JSON-парсер, браузеры разбирают его нативно, а большинство HTTP API принимают только его.

Поэтому конвертация происходит на границе систем. Инженер платформы пропускает манифест через jq, который читает только JSON. Бэкенд-разработчик отправляет спецификацию OpenAPI в генератор кода, которому нужен JSON. Тестировщик загружает тестовые данные из YAML в набор тестов на JavaScript. Во всех случаях YAML остается источником истины, а JSON — артефактом сборки. Если вместо конфигов у вас целый каталог выгрузок или фидов, XML в JSON обработает более старый формат разметки точно так же.

Как развивались YAML и JSON

Клэрк Эванс впервые предложил YAML
2001
В YAML 1.2 JSON стал подмножеством YAML
2009
RFC 8259, действующий стандарт JSON
2017
Опубликована редакция YAML 1.2.2
2021

Что происходит в JSON с возможностями, которые есть только в YAML

Якорь (&defaults) и его алиасы (*defaults) позволяют повторно использовать блок в YAML. В JSON ссылок нет, поэтому каждый алиас заменяется полной копией блока с якорем.

  • JSON может оказаться заметно длиннее YAML
  • Ключи слияния (<<: *defaults) раскрываются так же
Небольшая YAML-конфигурация в виде JSON с отступами
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Факты о форматах YAML и JSON

YAML

YAML

YAML («YAML Ain't Markup Language») — удобный для человека формат данных, впервые выпущенный в 2001 году. Он использует отступы вместо скобок, поддерживает комментарии и является надмножеством JSON. Его широко применяют для конфигурации в Docker Compose, Kubernetes, GitHub Actions и многих приложениях. Из-за зависимости от пробелов его легко сломать одним лишним пробелом, а некоторые значения, например «no» или даты, могут интерпретироваться неожиданно.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Конвертер YAML

JSON

Формат JSON (JavaScript Object Notation)

JSON — лёгкий текстовый формат для структурированных данных, который популяризировал Дуглас Крокфорд в начале 2000-х; он стандартизован как RFC 8259 и ECMA-404. Он описывает объекты, массивы, строки, числа, логические значения и null с помощью простого и читаемого синтаксиса. Это формат по умолчанию для веб-API, файлов конфигурации и обмена данными между приложениями практически на любом языке программирования. В нём нет встроенных комментариев, дат и схем, а большие вложенные файлы трудно читать без просмотрщика.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
2001 · Douglas Crockford
Конвертер JSON

YAML переводят в JSON, когда конфигурацию или спецификацию, написанную для людей, нужно передать машине: в запрос к API, валидатор схем или инструмент без YAML-парсера.

Вопросы о конвертации YAML в JSON

Зачем конвертировать YAML в JSON, если в них одни и те же данные?

Многие инструменты умеют разбирать только один из этих форматов. Средства чтения JSON есть в каждом языке программирования и в каждом браузере, а для YAML нужна дополнительная библиотека. Тела запросов к REST API, валидаторы JSON Schema, jq и такие файлы, как package.json или manifest.json расширения браузера, ожидают именно JSON.

Что происходит с комментариями в YAML?

Они удаляются. В RFC 8259 для JSON не предусмотрен синтаксис комментариев, поэтому строкам, начинающимся с #, в нем нет места. Храните YAML-файл как документированный источник, а JSON считайте сгенерированной копией, которую можно в любой момент получить заново.

Почему NO или off превратились в false?

Парсеры, следующие YAML 1.1, читают yes, no, on и off как булевы значения, поэтому код страны вроде NO (Норвегия) может превратиться в false. В YAML 1.2 булевы значения ограничены true и false, но не все инструменты ему следуют. Заключите такие значения в кавычки в YAML, например "NO", и в JSON они останутся строками.

Можно ли конвертировать шаблон CloudFormation, написанный на YAML?

AWS CloudFormation принимает оба формата, но короткие теги вроде !Ref и !GetAtt существуют только в YAML. В JSON-шаблонах они записываются как полные функции: {"Ref": "MyBucket"} или {"Fn::GetAtt": [...]}. Перед конвертацией перепишите короткие теги в полной форме, чтобы JSON-шаблон остался корректным.

Как выполнить обратное преобразование?

Воспользуйтесь JSON в YAML. Это обычное направление, когда ответ API или сгенерированный файл нужно превратить в читаемый конфигурационный файл в репозитории.