Конвертер YAML в JSON
Вставьте YAML и получите отформатированный JSON, готовый для API, кода на JavaScript или валидации по JSON Schema.
JSON
Преобразование конфигурационных файлов YAML в JSON
На YAML удобно писать, но многие инструменты принимают только JSON: его ожидают REST API, код на JavaScript, валидаторы JSON Schema и jq. Этот конвертер разбирает ваш YAML и выводит его в виде JSON с отступом в два пробела. Якоря и алиасы разворачиваются в полные копии, комментарии отбрасываются, а значения без кавычек получают типы по правилам YAML: числа становятся числами, true и false — булевыми значениями, ~ и null — null, а даты — строками в формате ISO 8601. Если в YAML есть ошибка отступов или синтаксиса, сообщение укажет строку и столбец.
Как пользоваться
- Вставьте YAML, например docker-compose.yml или рабочий процесс GitHub Actions.
- Посмотрите отформатированный JSON в редакторе вывода или исправьте строку, указанную в сообщении об ошибке.
- Скопируйте JSON или нажмите «Поменять», чтобы преобразовать его обратно в YAML.
Часто задаваемые вопросы
- Что происходит с якорями и алиасами YAML?
- Они разрешаются. Каждый алиас (*name) заменяется полной копией значения с якорем, поскольку в JSON нельзя сослаться на другую часть документа.
- Почему моё значение yes осталось строкой?
- Парсер следует спецификации YAML 1.2, в которой булевыми значениями являются только true и false. yes, no, on и off остаются строками; если нужно булево значение, пишите true или false.
- Можно ли конвертировать файл с несколькими документами, разделёнными ---?
- За один раз конвертируется только один документ. Вставляйте каждый документ отдельно или сначала объедините их в один список YAML.
Пример: YAML в JSON
Ввод YAML
name: deploy
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm test
Вывод JSON
{
"name": "deploy",
"on": {
"push": {
"branches": [
"main"
]
}
},
"jobs": {
"build": {
"runs-on": "ubuntu-latest",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"run": "npm test"
}
]
}
}
}