Convertidor YAML a JSON
Convierte YAML a JSON al instante en tu navegador. Compatible con manifiestos K8s, specs OpenAPI y valores Helm. Sin servidor, 100% privado.
Opciones · 2 espacios
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y basado en texto, estandarizado como RFC 8259 y ECMA-404. Admite seis tipos de datos — cadenas, números, booleanos, null, arrays y objetos — con una sintaxis estricta y mínima que prácticamente todos los lenguajes de programación, APIs y cadenas de herramientas pueden analizar de forma nativa. Mientras que YAML es el formato preferido para los archivos de configuración escritos por humanos (manifiestos de Kubernetes, GitHub Actions, playbooks de Ansible, valores de Helm), JSON es el formato universal legible por máquinas para APIs, scripts de automatización y procesamiento programático de datos.
Por lo tanto, convertir YAML a JSON es una de las tareas más comunes en DevOps y desarrollo backend — tienes un archivo de configuración YAML pero necesitas JSON para alimentarlo a una API REST, consultarlo con jq o procesarlo con herramientas JavaScript.
Esta herramienta tiene cuatro diferenciadores importantes en comparación con los conversores online típicos:
**1. Gestión de YAML con múltiples documentos.** YAML admite múltiples documentos en un único stream separados por --- (el marcador de inicio de documento). Muchos archivos YAML reales — incluidos algunos manifiestos de Kubernetes y playbooks de Ansible — contienen múltiples documentos. Esta herramienta usa parseAllDocuments de la librería eemeli/yaml con opciones { version: '1.2', merge: true } y devuelve el primer documento como JSON, comunicando claramente qué se tomó. Si necesitas todos los documentos, divídelos en --- y convierte cada uno individualmente.
**2. Expansión de Anclas y Alias.** Las anclas (&nombre) y los alias (*nombre) de YAML permiten la reutilización de bloques de datos — una potente característica de YAML sin equivalente en JSON. Esta herramienta expande completamente todas las anclas y alias (incluidas las claves de fusión: <<: *ancla) para que la salida JSON contenga datos completos y autosuficientes sin ninguna referencia. Esta es siempre la transformación correcta porque JSON no tiene sintaxis de referencia. La expansión es gestionada de forma segura por la librería eemeli/yaml, que incluye protección contra referencias circulares. Aprende cómo se compara con la dirección inversa en Convertidor JSON a YAML.
**3. Pérdida de Comentarios — Transparencia Educativa.** YAML admite comentarios con #, que se usan frecuentemente en manifiestos de Kubernetes, valores de Helm y playbooks de Ansible para documentar la intención. JSON no tiene sintaxis de comentarios, por lo que los comentarios se pierden permanentemente durante la conversión. Esto no es un error — es una diferencia fundamental de formato. Esta herramienta lo hace explícito para que sepas qué esperar. Si necesitas preservar anotaciones, codifícalas como campos JSON (claves _comment o un objeto de metadatos dedicado) antes de convertir, o mantén YAML como fuente de referencia. Consulta nuestro análisis profundo de las diferencias YAML-JSON para más información sobre las compensaciones de formato.
**4. Privacidad 100% Basada en el Navegador.** Tus datos YAML — que a menudo contienen secretos de Kubernetes, credenciales de bases de datos, valores de Helm con contraseñas y configuraciones de servicios internos — nunca salen de tu navegador. No se envían datos a ningún servidor. Puedes verificarlo en la pestaña Red de tu navegador. Después de convertir a JSON, puedes validar y formatear el resultado con nuestro Formateador JSON antes de usarlo en pasos posteriores.
La riqueza de YAML (comentarios, anclas, soporte para múltiples documentos, escalares en bloque) lo hace excelente para archivos de configuración creados por humanos donde importan la legibilidad y la documentación. La estrictez y universalidad de JSON lo convierten en la mejor opción cuando una máquina es el consumidor principal. Este conversor une los dos mundos: mantén tu configuración en YAML para la mantenibilidad humana, conviértela a JSON cuando necesites intercambio legible por máquinas.
// 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"
// } Características principales
Conversión en vivo
La salida JSON se actualiza al instante mientras escribes o pegas YAML — no se necesita botón Convertir. Las entradas grandes (>200 KB) cambian automáticamente al modo manual para mantener el navegador con capacidad de respuesta.
Sangría de 2 o 4 espacios
Cambia entre sangría de 2 y 4 espacios para la salida JSON. 2 espacios es el estándar para la mayoría de herramientas y APIs; 4 espacios coincide con algunas guías de estilo y valores predeterminados de editores.
Soporte para múltiples documentos
Gestiona streams YAML con múltiples documentos separados por ---. El primer documento se convierte a JSON y se devuelve. Útil para archivos de múltiples recursos de Kubernetes y playbooks de Ansible.
Expansión de anclas y alias
Expande completamente las anclas (&nombre) y los alias (*nombre) de YAML, incluidas las claves de fusión (<<: *ancla). La salida JSON contiene datos completos y desreferenciados sin referencias — comportamiento correcto ya que JSON no tiene equivalente.
Privacidad 100% en el navegador
Toda la conversión se ejecuta localmente en tu navegador usando JavaScript. Tus datos YAML — incluidos secretos, credenciales y configuraciones de producción — nunca se envían a ningún servidor, nunca se registran y nunca se almacenan.
Compatible con K8s, Compose, Helm y OpenAPI
Optimizado para casos de uso reales de DevOps: manifiestos de Kubernetes, stacks de Docker Compose, valores de charts Helm, workflows de GitHub Actions, especificaciones OpenAPI y playbooks de Ansible — con ejemplos para cada uno.
Ejemplos
Manifiesto de 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 Convierte un manifiesto de Deployment de Kubernetes de YAML a JSON — útil para consultar con jq, enviar a la API de Kubernetes o integrarlo en Terraform y pipelines de 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: {} Convierte un archivo YAML de Docker Compose a JSON para manipulación programática, integración en scripts de automatización o procesamiento con herramientas JavaScript
Workflow de GitHub Actions
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 Analiza un workflow YAML de GitHub Actions a JSON para consultar campos específicos, validar la estructura o integrarlo con APIs que consumen JSON
Especificación 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 Convierte una especificación OpenAPI 3.0 de YAML a JSON para usar con generadores de código cliente, herramientas de prueba de API o inspección programática de esquemas
values.yaml de Helm
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 Convierte los valores values.yaml de un chart Helm a JSON para análisis, generación de informes o integración en herramientas que esperan configuración JSON
Playbook de Ansible
- 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 Analiza un playbook YAML de Ansible a JSON para inspeccionar la estructura de tareas, auditar configuraciones o integrarlo con pipelines de informes
Cómo usar
- 1
Pega tu YAML
Introduce o pega tus datos YAML en el campo de entrada de arriba. También puedes hacer clic en 'Cargar ejemplo' para probar un ejemplo como un Deployment de Kubernetes, un archivo de Docker Compose o un values.yaml de Helm.
- 2
Observa la salida JSON en vivo
El JSON aparece instantáneamente en el panel de salida. Ajusta las Opciones (sangría de 2 o 4 espacios) para cumplir los requisitos de tu herramienta de destino.
- 3
Copia o Descarga
Haz clic en Copiar para llevar el JSON al portapapeles, o en Descargar para guardarlo como archivo .json listo para jq, llamadas a APIs o cualquier herramienta de procesamiento posterior.
Errores comunes de YAML
Sangría con tabulaciones
La especificación YAML prohíbe los caracteres de tabulación para la sangría — solo se permiten espacios. Si tu YAML fue escrito o copiado desde un editor que usa tabulaciones, el parser lanzará un error. Reemplaza toda la sangría con tabulaciones por espacios (2 o 4 espacios por nivel).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Sangría no coincidente
YAML usa sangría consistente para definir el anidamiento. Mezclar diferentes números de espacios dentro del mismo bloque (por ejemplo, 2 espacios en un nivel y 3 en otro) causa errores de análisis. Cada nivel debe sangrarse con el mismo número de espacios en todo el documento.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Caracteres especiales sin entrecomillar
Caracteres como :, #, &, *, {, }, [, ], |, >, !, y @ tienen un significado especial en YAML. Usarlos sin entrecomillar en los valores puede causar errores de análisis o comportamientos inesperados. Entrecomilla los valores que contengan estos caracteres con comillas simples o dobles.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Ciclos de anclas
YAML técnicamente permite anclas que se referencian a sí mismas (referencias circulares), aunque esto es poco habitual en la práctica. Un ancla circular hace que el parser entre en un bucle de expansión infinita. La librería eemeli/yaml detecta y lanza un error para las anclas circulares en lugar de bloquearse.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Confusión con múltiples documentos
Los archivos YAML con múltiples separadores --- contienen múltiples documentos. Esta herramienta devuelve solo el primer documento como JSON. Si esperabas datos de un documento posterior (después del segundo o tercer ---), no aparecerán en la salida. Divide tu YAML en --- y convierte cada sección por separado si necesitas todos los documentos.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Pérdida de comentarios
YAML admite comentarios con # pero JSON no. Todos los comentarios YAML se pierden permanentemente durante la conversión — esta es una diferencia fundamental de formato, no una limitación de la herramienta. Si necesitas preservar anotaciones en JSON, codifícalas como un campo dedicado, como una clave _comment o un objeto de metadatos.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Casos de uso comunes
- Análisis de manifiestos de Kubernetes
- Convierte manifiestos YAML de Kubernetes a JSON para consultarlos con jq, enviarlos a la API REST de Kubernetes, procesarlos en fuentes de datos de Terraform o alimentarlos en pipelines de CI/CD que esperan JSON.
- Docker Compose para herramientas JavaScript
- Analiza el YAML de Docker Compose a JSON para extraer definiciones de servicios, nombres de imágenes, mapeos de puertos y variables de entorno para usarlos en scripts de automatización, grafos de dependencias o herramientas Node.js.
- Integración de APIs de GitHub Actions
- Convierte el YAML de workflows de GitHub Actions a JSON para validar la estructura programáticamente, extraer definiciones de trabajos y pasos, o integrarlo con APIs de CI/CD que aceptan especificaciones de workflows en JSON.
- OpenAPI para generación de código cliente
- Muchos generadores de código (openapi-generator, swagger-codegen, oazapfts) aceptan especificaciones OpenAPI en cualquier formato. Convierte tu especificación YAML a JSON cuando una herramienta requiera específicamente entrada JSON o cuando necesites inspeccionarla con validadores de JSON Schema.
- Análisis de valores de Helm
- Convierte los values.yaml de charts Helm a JSON para generar informes, comparar valores entre entornos, alimentar herramientas de aplicación de políticas o procesar con automatización que espera configuración JSON.
- Migración de configuración a herramientas basadas en JSON
- Migra la configuración de aplicaciones de YAML (habitual en herramientas de infraestructura) a JSON para usar en entornos JavaScript, APIs REST, AWS AppConfig, Azure App Configuration o cualquier sistema que almacene la configuración como JSON.
Detalles técnicos
- Especificación YAML 1.2 mediante parseAllDocuments con merge:true
- El YAML se analiza usando la librería eemeli/yaml (v2.8+, segura frente a CVE) mediante parseAllDocuments con { version: '1.2', merge: true }. El esquema YAML 1.2 garantiza que las cadenas simples como yes y no se traten como cadenas (no como booleanos), coincidiendo con la especificación YAML actual. La opción merge: true expande completamente las claves de fusión de anclas/alias (<<: *ancla) para que la salida JSON contenga datos completos y desreferenciados. El YAML con múltiples documentos (separados por ---) devuelve el primer documento.
- Expansión de anclas y alias mediante la librería
- La librería eemeli/yaml gestiona la expansión de anclas (&nombre) y alias (*nombre) de forma segura, incluida la detección de referencias circulares. Todos los bloques de datos con alias — incluidas las expansiones de claves de fusión — se inlinean completamente en la salida JSON. Esta es la transformación correcta porque JSON no tiene concepto de referencia ni de ancla. La expansión segura de la librería evita los bucles infinitos de YAML malformado.
- Basado en el navegador — Sin carga, Sin servidor
- Todo el procesamiento ocurre completamente en el motor JavaScript de tu navegador. No se transmiten datos por la red en ningún momento. Las entradas mayores de 200 KB cambian automáticamente del modo en vivo al modo manual (requiriendo un clic explícito en Convertir) para mantener el navegador con capacidad de respuesta y evitar el bloqueo del hilo principal durante la serialización intensiva.
Buenas prácticas
- Usa sintaxis compatible con YAML 1.2 para una conversión limpia
- Crea tu YAML usando las convenciones de YAML 1.2 — entrecomilla explícitamente los valores de cadena yes, no, on, off, y y n (por ejemplo, enabled: 'yes') para evitar ambigüedades. Esta herramienta analiza con el esquema YAML 1.2 (por lo que son cadenas), pero las herramientas más antiguas de tu pipeline pueden usar YAML 1.1 (donde se convierten en booleanos). El entrecomillado explícito en el YAML fuente es la práctica más segura para todos los parsers.
- Entrecomilla los números grandes en YAML para preservar la precisión
- JavaScript no puede representar enteros mayores que 2^53 - 1 (9007199254740991) exactamente. Los campos de Kubernetes como resourceVersion y uid son int64 en el servidor y pueden superar este límite. En tu fuente YAML, entrecomilla estos valores (resourceVersion: '9007199254740993') para que el parser los trate como cadenas, que luego se preservan exactamente en la salida JSON como valores de cadena.
- Valida la salida JSON antes de usarla en APIs
- Después de convertir YAML a JSON, valida el resultado antes de enviarlo a una API, almacenarlo o procesarlo programáticamente. Usa nuestro Formateador JSON para confirmar que la estructura es correcta. Esto es especialmente importante para las llamadas a la API de Kubernetes, las especificaciones OpenAPI y cualquier carga útil validada con JSON Schema, donde un error estructural causa un rechazo confuso en la capa de API en lugar de en el paso de conversión.
- Separa el YAML con múltiples documentos antes de convertir
- Si tu archivo YAML contiene múltiples documentos separados por --- y necesitas todos ellos como JSON, divide el archivo en --- primero y convierte cada documento individualmente. Esta herramienta solo toma el primer documento. Un enfoque sencillo: divide en '\n---\n' en tu editor o con awk, luego pega cada sección por separado.
- Usa jq para el procesamiento JSON posterior
- Una vez que tienes JSON de tu YAML, jq es la forma más rápida de consultarlo y transformarlo desde la línea de comandos. Combina esta herramienta con jq: convierte tu YAML online, pega el JSON, luego usa jq '.spec.replicas' o jq '.services | keys' para extraer exactamente lo que necesitas. Para el procesamiento por lotes de muchos archivos, usa el CLI de yq con el indicador -o json directamente.
Preguntas frecuentes
¿Cómo convierto YAML a JSON online?
¿Cómo gestiona esta herramienta el YAML con múltiples documentos (separador ---)?
¿Cómo se gestionan las anclas y los alias de YAML (&ancla y *alias)?
¿Se preservan los comentarios YAML en la salida JSON?
¿Cómo uso esta herramienta con un manifiesto de Kubernetes?
¿Cómo ayuda esta herramienta con los archivos de Docker Compose?
¿Cuál es la diferencia entre YAML 1.1 y YAML 1.2, y cuál usa esta herramienta?
¿Por qué YAML prohíbe la sangría con tabulaciones?
¿Pueden los números grandes perder precisión al convertir YAML a JSON?
¿Cómo puedo convertir YAML a JSON en la línea de comandos?
¿Se envían mis datos YAML a algún servidor cuando uso esta herramienta?
¿Existe un límite de tamaño de archivo para la entrada YAML?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Formateador y Validador JSON
Codificación y Formato
Formatea, valida y embellece JSON al instante en tu navegador. Herramienta gratuita con validación sintáctica, detección de errores, minificación y copia con un clic. 100% privado.
Convertidor JSON a YAML
Codificación y Formato
Convierte JSON a YAML al instante en tu navegador. Listo para K8s y Compose, sangría 2/4 espacios, protección Norway automática. 100% privado, sin carga.
Codificador y Decodificador URL con Analizador Integrado
Codificación y Formato
Pega una URL para decodificarla o codificarla al instante. Analizador integrado descompone protocolo, host, ruta y parámetros en campos editables. Modos encodeURI y encodeURIComponent. 100% navegador — sin envío de datos.
Conversor de Bases — Binario, Hex, Decimal, Octal
Herramientas de Conversión
Convierte números entre binario, hexadecimal, decimal, octal y cualquier base personalizada (2-36) al instante. Gratis, privado, sin registro — todo el procesamiento ocurre en tu navegador.
Comprimir Imágenes Online — JPEG, PNG y WebP
Herramientas de Conversión
Reduce el tamaño de las imágenes hasta un 80% — comprime JPEG, PNG y WebP en tu navegador, sin subir archivos. Lotes de 20 imágenes, ajusta la calidad, compara antes y después. Gratis y privado.