Конвертер YAML в JSON
Вставьте YAML, получите JSON мгновенно. Live-конвертация в браузере. Поддержка манифестов K8s, OpenAPI, helm values. 100% приватно, без загрузки.
Настройки · 2 пробела
Что такое JSON?
JSON (JavaScript Object Notation) — это лёгкий текстовый формат обмена данными, стандартизованный как RFC 8259 и ECMA-404. Поддерживает шесть типов данных — строки, числа, булевы, null, массивы и объекты — со строгим минимальным синтаксисом, который нативно разбирает практически любой язык программирования, API и цепочка инструментов. Хотя YAML предпочтительнее для конфигов с ручным редактированием (манифесты Kubernetes, GitHub Actions, Ansible playbook, Helm values), JSON — универсальный машинно-читаемый формат для API, скриптов автоматизации и программной обработки данных.
Поэтому конвертация YAML в JSON — одна из самых частых задач в DevOps и backend-разработке: у вас есть YAML-конфиг, но нужен JSON для REST API, запросов через jq или обработки JavaScript-инструментами.
Четыре отличия инструмента от типичных онлайн-конвертеров:
**1. Обработка многодокументного YAML.** YAML поддерживает несколько документов в одном потоке через --- (маркер начала документа). Инструмент использует parseAllDocuments из eemeli/yaml с { version: '1.2', merge: true } и возвращает первый документ как JSON, чётко сообщая, что взято. Если нужны все, разделите по --- и конвертируйте каждый отдельно.
**2. Раскрытие якорей и алиасов.** YAML-якоря (&name) и алиасы (*name) позволяют переиспользовать блоки данных — мощная возможность YAML, не имеющая аналога в JSON. Инструмент полностью раскрывает все якоря и алиасы (включая merge-ключи: <<: *anchor), поэтому JSON-вывод содержит полные данные без ссылок. Это всегда корректное преобразование, потому что у JSON нет синтаксиса ссылок. Раскрытие безопасно обрабатывается библиотекой eemeli/yaml, защищая от циклических ссылок. Сравните с обратным направлением: конвертер JSON в YAML.
**3. Потеря комментариев — образовательная прозрачность.** YAML поддерживает # комментарии, часто используемые в манифестах Kubernetes, Helm values и Ansible playbook для документации. У JSON нет комментариев, поэтому они безвозвратно теряются. Это не баг — это фундаментальное различие форматов. Если нужны аннотации, кодируйте их как поля JSON (ключи _comment или отдельный объект metadata) перед конвертацией. См. подробный разбор различий YAML-JSON.
**4. 100% приватность в браузере.** Ваш YAML — часто содержит секреты Kubernetes, учётные данные БД, Helm values с паролями и внутренние конфигурации сервисов — никогда не покидает браузер. Никакие данные не отправляются на сервер. После конвертации в JSON можно проверить и отформатировать результат через наш форматировщик JSON. Нужно сравнить два JSON и найти отличия? Попробуйте JSON Diff.
// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';
const yamlString = `apiVersion: apps/v1
kind: Deployment`;
// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });
// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);
console.log(json);
// {
// "apiVersion": "apps/v1",
// "kind": "Deployment"
// } Ключевые возможности
Live-конвертация
JSON обновляется мгновенно по мере ввода или вставки YAML — кнопка «Конвертировать» не нужна. Большие входы (>200 КБ) автоматически переключаются в ручной режим.
Отступ 2 или 4 пробела
Переключение между 2 и 4 пробелами для JSON. 2 — стандарт для большинства инструментов и API; 4 — для некоторых style guide и редакторов.
Поддержка многодокументного
Обрабатывает YAML-потоки с несколькими --- разделёнными документами. Первый документ конвертируется в JSON. Полезно для многоресурсных файлов Kubernetes и Ansible playbook.
Раскрытие якорей и алиасов
Полностью раскрывает YAML-якоря (&name) и алиасы (*name), включая merge-ключи (<<: *anchor). JSON-вывод содержит полные дереференцированные данные без ссылок.
100% приватность в браузере
Вся конвертация — локально в браузере на JavaScript. Ваш YAML — включая секреты, учётные данные и production-конфиги — не отправляется на сервер.
Поддержка K8s, Compose, Helm, OpenAPI
Оптимизирован для реальных DevOps-сценариев: манифесты Kubernetes, стеки Docker Compose, Helm values, workflow GitHub Actions, OpenAPI и Ansible playbook.
Примеры
Манифест Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: production
labels:
app: my-app
version: 1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m Преобразование манифеста Kubernetes Deployment из YAML в JSON — удобно для запросов через jq, отправки в Kubernetes API или для Terraform и CI/CD
Docker Compose
version: '3.9'
services:
web:
image: nginx:1.25-alpine
ports:
- '80:80'
- '443:443'
environment:
NGINX_HOST: example.com
NGINX_PORT: '80'
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Преобразование Docker Compose YAML в JSON для программной обработки, скриптов автоматизации или JavaScript-инструментов
GitHub Actions Workflow
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test Разбор YAML workflow GitHub Actions в JSON для запросов конкретных полей, проверки структуры или интеграции с API
OpenAPI спецификация
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Manage application users
paths:
/users:
get:
summary: List users
operationId: listUsers
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{id}:
get:
summary: Get user
operationId: getUser
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email Преобразование OpenAPI 3.0 spec из YAML в JSON для генераторов клиентского кода, инструментов тестирования API или программной проверки
Helm values.yaml
replicaCount: 3
image:
repository: my-app
tag: 1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: my-app.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80 Преобразование Helm chart values.yaml в JSON для анализа, отчётов или для инструментов, ожидающих JSON-конфигурацию
Ansible Playbook
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
max_clients: 200
tasks:
- name: Ensure nginx is installed
ansible.builtin.package:
name: nginx
state: present
- name: Start nginx service
ansible.builtin.service:
name: nginx
state: started
enabled: true
- name: Copy nginx config
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify:
- Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted Разбор YAML Ansible playbook в JSON для просмотра структуры задач, аудита конфигурации или интеграции с отчётами
Как использовать
- 1
Вставьте YAML
Введите или вставьте YAML в поле ввода. Можно нажать «Загрузить пример», чтобы попробовать готовый — например, K8s Deployment, Docker Compose или Helm values.yaml.
- 2
Смотрите live JSON
JSON появляется в панели вывода мгновенно. Настройте отступ (2 или 4 пробела) под требования целевого инструмента.
- 3
Скопируйте или скачайте
Нажмите «Скопировать», чтобы поместить JSON в буфер, или «Скачать», чтобы сохранить как .json для jq, API-вызовов или другого downstream-инструмента.
Типичные ловушки YAML
Табы в отступах
Спецификация YAML запрещает табы для отступов — допустимы только пробелы. Если YAML вставлен из редактора с табами, парсер выдаст ошибку. Замените все табы на пробелы (2 или 4 на уровень).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Несогласованные отступы
YAML использует согласованный отступ для определения вложенности. Смешивание разного числа пробелов в одном блоке (например, 2 на одном уровне и 3 на другом) вызывает ошибку разбора. Каждый уровень должен иметь одинаковое число пробелов.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Незакавыченные специальные символы
Символы :, #, &, *, {, }, [, ], |, >, !, @ имеют специальное значение в YAML. Использование их незакавыченными в значениях вызывает ошибки или неожиданное поведение. Закавычивайте такие значения одинарными или двойными кавычками.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Циклические якоря
YAML технически разрешает якоря, ссылающиеся сами на себя, хотя на практике это редко. Циклический якорь приводит к бесконечному раскрытию. Библиотека eemeli/yaml обнаруживает и выдаёт ошибку для циклических якорей вместо зависания.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Путаница многодокументного
Файлы YAML с несколькими --- разделителями содержат несколько документов. Этот инструмент возвращает только первый как JSON. Если ожидались данные из последующего документа, их в выводе не будет. Разделите YAML по --- и конвертируйте каждый раздел отдельно, если нужны все.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Потеря комментариев
YAML поддерживает # комментарии, JSON — нет. Все YAML-комментарии безвозвратно удаляются при конвертации — это фундаментальное различие, не ограничение. Если нужны аннотации в JSON, кодируйте их как отдельное поле, например _comment или объект metadata.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Типичные сценарии
- Анализ манифестов Kubernetes
- Конвертация YAML-манифестов в JSON для запросов через jq, отправки в Kubernetes REST API, обработки в источниках данных Terraform или передачи в CI/CD-конвейеры, ожидающие JSON.
- Docker Compose в JavaScript-инструменты
- Разбор YAML Docker Compose в JSON для извлечения определений сервисов, имён образов, маппинга портов и переменных окружения для скриптов автоматизации, графов зависимостей или Node.js-инструментов.
- GitHub Actions API integration
- Конвертация YAML workflow GitHub Actions в JSON для программной валидации структуры, извлечения определений job и step или интеграции с CI/CD API, принимающими JSON.
- OpenAPI в генерацию клиентского кода
- Многие генераторы (openapi-generator, swagger-codegen, oazapfts) принимают OpenAPI в любом формате. Конвертируйте YAML-spec в JSON, когда инструмент явно требует JSON или нужна проверка через JSON Schema-валидаторы.
- Анализ Helm values
- Конвертация Helm values.yaml в JSON для отчётов, сравнения значений между окружениями, передачи в инструменты обеспечения политики или обработки автоматизацией, ожидающей JSON.
- Миграция конфигураций в JSON-инструменты
- Миграция конфигурации приложения из YAML (часто в инфраструктурных инструментах) в JSON для использования в JavaScript-окружениях, REST API, AWS AppConfig, Azure App Configuration или других системах с JSON-конфигурациями.
Технические детали
- YAML 1.2 spec через parseAllDocuments с merge:true
- YAML разбирается библиотекой eemeli/yaml (v2.8+, CVE-safe) через parseAllDocuments с { version: '1.2', merge: true }. Схема YAML 1.2 гарантирует, что голые строки yes и no — строки, а не булевы. Опция merge: true полностью раскрывает merge-ключи якорей/алиасов (<<: *anchor). Многодокументный YAML возвращает первый документ.
- Раскрытие якорей и алиасов библиотекой
- Библиотека eemeli/yaml безопасно обрабатывает раскрытие якорей и алиасов, включая обнаружение циклических ссылок. Все алиасированные блоки данных — включая merge-ключи — полностью встроены в JSON-вывод. Это корректное преобразование, потому что у JSON нет понятия ссылок.
- В браузере — без загрузок и сервера
- Вся обработка идёт в JavaScript-движке браузера. Никакие данные не передаются по сети. Входы больше 200 КБ автоматически переключаются из live в ручной режим (требуется явный клик «Конвертировать»).
Лучшие практики
- Используйте YAML 1.2-совместимый синтаксис
- Пишите YAML по конвенциям YAML 1.2 — явно закавычивайте yes, no, on, off, y, n как строки (например, enabled: 'yes'), чтобы избежать неоднозначности. Инструмент разбирает по схеме YAML 1.2 (это строки), но старые инструменты в цепочке могут использовать YAML 1.1 (где это булевы). Явное закавычивание в YAML-источнике — самая безопасная практика для всех парсеров.
- Закавычивайте большие числа в YAML
- JavaScript не может точно представить целые больше 2^53 - 1 (9007199254740991). Поля Kubernetes вроде resourceVersion и uid — int64 на сервере и могут превышать этот лимит. В YAML-источнике закавычивайте такие значения (resourceVersion: '9007199254740993'), чтобы парсер обрабатывал их как строки, точно сохраняемые в JSON.
- Проверяйте JSON-вывод перед использованием в API
- После конвертации YAML в JSON проверяйте результат перед отправкой в API, сохранением или программной обработкой. Используйте наш форматировщик JSON для подтверждения корректной структуры. Особенно важно для вызовов Kubernetes API, OpenAPI-spec и любых JSON Schema-валидируемых payload.
- Разделяйте многодокументный YAML перед конвертацией
- Если YAML-файл содержит несколько --- разделённых документов и нужны все как JSON, сначала разделите по --- и конвертируйте каждый отдельно. Этот инструмент берёт только первый. Простой подход: разделите по '\n---\n' в редакторе или через awk, затем вставляйте каждый раздел.
- Используйте jq для downstream-обработки JSON
- Получив JSON из YAML, jq — самый быстрый способ запросов и трансформаций в командной строке. Скомбинируйте: конвертируйте YAML онлайн, вставьте JSON, затем jq '.spec.replicas' или jq '.services | keys' для извлечения нужного. Для batch-обработки многих файлов используйте yq CLI с флагом -o json напрямую.
Часто задаваемые вопросы
Как конвертировать YAML в JSON онлайн?
Как обрабатывается многодокументный YAML (--- разделитель)?
Как обрабатываются YAML-якоря и алиасы (&anchor и *alias)?
Сохраняются ли YAML-комментарии в JSON?
Как использовать инструмент с манифестом Kubernetes?
Как инструмент помогает с Docker Compose?
В чём разница между YAML 1.1 и 1.2 и какую версию использует инструмент?
Почему YAML запрещает табы для отступов?
Могут ли большие числа потерять точность при конвертации YAML в JSON?
Как конвертировать YAML в JSON в командной строке?
Отправляются ли мои YAML-данные на сервер?
Есть ли ограничение размера файла YAML?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
JSON Diff и сравнение
Кодирование и форматирование
Сравнивайте два JSON-файла мгновенно в браузере. Side-by-side подсветка, вывод JSON Patch (RFC 6902), игнорирование шума вроде timestamp и ID. 100% приватно, без загрузки.
Форматировщик и валидатор JSON
Кодирование и форматирование
Форматирование, проверка и улучшение читаемости JSON прямо в браузере. Бесплатный онлайн-инструмент с проверкой синтаксиса, поиском ошибок, минификацией и копированием в один клик. Полная приватность.
Конвертер JSON в YAML
Кодирование и форматирование
Вставьте JSON, получите YAML мгновенно. Live-конвертация в браузере. Готово для K8s/Compose, отступ 2/4 пробела, умное экранирование. 100% приватно, без загрузки.
Генератор QR-кодов — URL, WiFi, vCard, Email, SMS, Geo
Кодирование и форматирование
Бесплатный генератор QR-кодов. Создавайте статические QR для URL, WiFi, vCard, email и SMS. Скачивание SVG и PNG. Без срока действия, без регистрации, 100% в браузере.
URL кодировщик и декодер с парсером URL
Кодирование и форматирование
Декодирование и кодирование URL в реальном времени со встроенным парсером URL. Два режима: encodeURI и encodeURIComponent. 100% приватно, данные не отправляются на сервер.