Skip to content

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

Вставьте YAML, получите JSON мгновенно. Live-конвертация в браузере. Поддержка манифестов K8s, OpenAPI, helm values. 100% приватно, без загрузки.

Без отслеживания Работает в браузере Бесплатно
Настройки · 2 пробела
Отступ
0 симв.
JSON Вывод
0 строк
Проверено на соответствие спецификации YAML 1.2, корректность раскрытия якорей/алиасов и обработку многодокументных входов — Команда инженеров Go-Tools · May 4, 2026

Что такое 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. 1

    Вставьте YAML

    Введите или вставьте YAML в поле ввода. Можно нажать «Загрузить пример», чтобы попробовать готовый — например, K8s Deployment, Docker Compose или Helm values.yaml.

  2. 2

    Смотрите live JSON

    JSON появляется в панели вывода мгновенно. Настройте отступ (2 или 4 пробела) под требования целевого инструмента.

  3. 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 в поле ввода. Инструмент мгновенно конвертирует его в JSON в браузере — кнопку нажимать не нужно. В панели «Настройки» можно выбрать отступ JSON (2 или 4 пробела). Когда JSON появится в области вывода, нажмите «Скопировать» или «Скачать», чтобы сохранить как .json. Всё работает локально — данные не покидают устройство.
Как обрабатывается многодокументный YAML (--- разделитель)?
YAML поддерживает несколько документов в одном потоке, разделённых --- (маркер начала документа). Когда вы вставляете многодокументный YAML, инструмент использует parseAllDocuments из библиотеки eemeli/yaml и возвращает первый документ как JSON. Остальные документы после первого молча игнорируются. Если нужно обработать все, разделите YAML по --- и конвертируйте каждый раздел отдельно.
Как обрабатываются YAML-якоря и алиасы (&anchor и *alias)?
YAML-якоря (&name) определяют переиспользуемый блок, а алиасы (*name) ссылаются на него. Этот инструмент полностью раскрывает все якоря и алиасы при разборе, поэтому JSON содержит полные дереференцированные данные. Например, если YAML-якорь определяет набор лимитов ресурсов, а несколько сервисов используют его через merge-ключи (<<: *anchor), JSON-вывод содержит все поля явно встроенными в каждом сервисе. Это корректное поведение для JSON, не имеющего понятия ссылок. Библиотека eemeli/yaml безопасно обрабатывает раскрытие, включая обнаружение циклических ссылок.
Сохраняются ли YAML-комментарии в JSON?
Нет. JSON не поддерживает комментарии — ни #, ни //, ни /* */. При конвертации YAML в JSON все комментарии безвозвратно теряются. Это фундаментальное различие форматов, а не ограничение инструмента. Если нужно сохранить аннотации, рассмотрите кодирование в специальное поле JSON (например, ключ _comment) перед конвертацией или сохранение YAML-источника как авторитетной версии с комментариями.
Как использовать инструмент с манифестом Kubernetes?
Вставьте YAML манифест Kubernetes (из .yaml файла, kubectl get -o yaml или Helm-шаблона) в поле ввода. JSON можно затем запрашивать через jq, отправлять прямо в Kubernetes REST API, использовать в источниках данных Terraform или обрабатывать любым инструментом, ожидающим JSON. Частый рабочий поток — конвертировать YAML в JSON для извлечения конкретных полей: jq '.spec.replicas' на JSON-выходе для проверки числа реплик.
Как инструмент помогает с Docker Compose?
Файлы Docker Compose по конвенции — YAML. Конвертация в JSON позволяет обрабатывать определения сервисов JavaScript-инструментами, jq-скриптами или системами, читающими JSON. Типичные сценарии — извлечение всех имён образов для построения списка зависимостей, генерация отчётов из compose-файла или передача конфигураций в инструменты CI/CD-оркестрации, принимающие JSON.
В чём разница между YAML 1.1 и 1.2 и какую версию использует инструмент?
YAML 1.1 (старая спецификация, всё ещё используется PyYAML, Ansible, Ruby Psych и многими инструментами Kubernetes) считает голые строки yes, no, on, off, y, n булевыми true/false. Это вызвало печально известную проблему Норвегии, где ISO-код страны «NO» прочитался как false. YAML 1.2 (текущая спецификация, выпущена в 2009) исправила это: все голые строки — строки, и только true/false — булевы. Инструмент использует схему YAML 1.2 для разбора, поэтому yes и no во входе сохраняются как строки 'yes' и 'no' в JSON — а не как булевы true и false. Это корректное современное поведение.
Почему YAML запрещает табы для отступов?
Спецификация YAML явно запрещает символы табуляции (\t) для отступов — допустимы только пробелы. Это намеренное решение, чтобы избежать неоднозначности из-за разной ширины таба в редакторах. Если в YAML используются табы (часто при копировании из редакторов с автозаменой пробелов на табы), парсер выдаст ошибку. Замените все табы на пробелы. У большинства редакторов есть настройка конвертации (например, «Insert Spaces» в VS Code).
Могут ли большие числа потерять точность при конвертации YAML в JSON?
Да. Это фундаментальное ограничение JavaScript, касающееся всех браузерных инструментов. JavaScript IEEE 754 double-precision может точно представить целые только до 2^53 - 1 (9007199254740991). Большие числа YAML — например, поля int64 Kubernetes вроде resourceVersion — будут молча округлены при передаче парсером в число JavaScript. Например, значение 9007199254740993 становится 9007199254740992 в JSON. Безопасный обход — закавычить большие числа в YAML-источнике (resourceVersion: '9007199254740993'), чтобы парсер обработал их как строки, точно сохраняемые в JSON.
Как конвертировать YAML в JSON в командной строке?
Самый популярный подход — yq (от Mike Farah) и jq. Установите yq: brew install yq на macOS или скачайте с github.com/mikefarah/yq/releases для Linux. Затем: yq -o json input.yaml — конвертация YAML в JSON, или cat input.yaml | yq -o json - — из stdin. Для pretty-print: yq -o json input.yaml | jq .. Python-однострочник: python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml. Для многодокументного YAML с yq: yq -o json '.[0]' input.yaml — извлечение только первого документа.
Отправляются ли мои YAML-данные на сервер?
Нет. Вся конвертация происходит в браузере на JavaScript. Ваш YAML не передаётся по сети, не сохраняется на сервере, не логируется и не анализируется. Это безопасно для секретов Kubernetes, учётных данных БД, внутренних Helm values, API-ключей в конфигурациях и любой другой инфраструктурной конфигурации. Можно проверить во вкладке Network браузера — нулевые запросы при вставке YAML.
Есть ли ограничение размера файла YAML?
Жёсткого ограничения нет, но большие входы (>200 КБ) автоматически переключают live-конвертацию в ручной режим. В ручном режиме появляется кнопка «Конвертировать», и преобразование запускается только при клике — это предотвращает блокировку основного потока браузера. Для очень больших файлов (несколько мегабайт) используйте CLI yq для лучшей производительности.

Похожие инструменты

Все инструменты →

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% приватно, данные не отправляются на сервер.