VELDAT

Перевести YAML в JSON

Текст обрабатывается в браузере и не отправляется на сервер.

Переводит YAML в JSON: якоря и ключи слияния раскрываются, несколько документов собираются в массив. Ошибки YAML показаны на русском с номером строки и столбца.

Данные

Вставьте данные или откройте файл: дерево и перевод в другие форматы появятся здесь.

Схема появится, когда в поле будут данные

Дальше обычно делают

Зачем переводить YAML в JSON

YAML и JSON хранят одни и те же данные: списки, объекты, строки и числа. YAML удобен людям — в нём отступы вместо скобок и можно писать комментарии, поэтому на нём сделаны настройки docker-compose, Kubernetes, CI и описания API. JSON удобен программам: его принимают API, а многие языки программирования читают его без дополнительных библиотек.

Перевод нужен, когда настройки из YAML надо передать программе или API, которые принимают только JSON, вставить в запрос или разобрать скриптом. Ещё это способ понять, что на самом деле записано в сложном YAML: якоря и ключи слияния в JSON уже раскрыты, и видно, какое значение получит каждый ключ. Если YAML не переводится, ошибка с номером строки покажет, где сбился отступ.

Как пользоваться

  1. Вставьте YAML в поле слева или откройте файл .yaml или .yml.

  2. Справа откроется JSON. Если в YAML ошибка, строка под полем покажет её место на русском.

  3. Скопируйте или скачайте JSON. Отступ выбирается в «Настройках».

Пример

Было
base: &base
  image: nginx:1.27
  restart: always
web:
  <<: *base
  ports:
    - "80:80"
Стало
{
  "base": {
    "image": "nginx:1.27",
    "restart": "always"
  },
  "web": {
    "image": "nginx:1.27",
    "restart": "always",
    "ports": [
      "80:80"
    ]
  }
}

Вопросы и ответы

Что происходит с якорями и `<<`?

Ссылка *base заменяется значением якоря, а ключ слияния <<: *base добавляет ключи базы в объект, как это делают docker-compose и системы CI. Если ключ задан и в базе, и в самом объекте, остаётся значение объекта.

Куда деваются комментарии?

В JSON комментариев нет, поэтому при переводе они теряются — об этом сказано под результатом. В самом поле слева комментарии остаются, и «Форматировать» их не трогает.

Что, если в файле несколько документов через `---`?

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

Как переводятся теги вроде `!Ref` из CloudFormation?

Значение переводится без тега, а строка под полем предупреждает: «Неизвестный тег: значение взято без тега». Для !Ref Bucket в JSON попадёт "Bucket".

Задача сложнее инструмента

Архитектуру и интеграции с API можно обсудить на консультации: выберите время, и вы получите письменный итог с конкретными шагами.

Записаться на консультацию