Conversor JSON ↔ YAML
JSONConversión bidireccional entre JSON y YAML 1.2 con validación en vivo y ubicación de errores por fila/columna.
No se recuperan URLs remotas; pega tu JSON directamente.
En esta página
¿Qué es un conversor YAML / JSON?#
YAML y JSON son dos formas de escribir el mismo tipo de datos: mapas anidados, listas, cadenas, números, booleanos y nulos. JSON es estricto y denso en puntuación (todas las cadenas entre comillas dobles, corchetes por todas partes); YAML cana esas comillas y llaves por la sangría y los guiones, lo que lo hace tan legible que las personas lo escriben a mano para archivos de configuración, pipelines de CI y manifiestos de contenedores.
No dejas de necesitar cruzar entre los dos porque distintas herramientas prefieren distintos formatos. Un chart de Kubernetes se escribe en YAML pero la API habla JSON. Una configuración de CI es YAML; el linter al que quieres dárselo espera JSON. Un compañero pega un bloque YAML en el chat; tu script quiere JSON.parse. Hacer esto a mano —resangrar, volver a entrecomillar, intercambiar guiones por corchetes— es justo el tipo de tarea delicada que introduce una coma perdida o un espacio mal puesto, y luego nada se analiza.
Esta página convierte en ambas direcciones dentro de tu navegador. De YAML a JSON cuando necesitas el rigor apto para máquinas; de JSON a YAML cuando quieres un archivo de configuración que una persona pueda leer de verdad. Analiza con el esquema núcleo de YAML 1.2 (sin instanciación arriesgada de objetos), localiza los errores en una fila y columna exactas y se niega a plegar líneas largas para que la salida siga siendo apta para diffs.
Cómo usarlo#
- Elige una dirección en el conmutador de dos botones de la parte superior izquierda de la barra de herramientas:
- YAML → JSON (la opción por defecto): pega YAML a la izquierda, obtén JSON estricto a la derecha.
- JSON → YAML: pega JSON a la izquierda, obtén YAML indentado a la derecha.
- Elige la Sangría: 2 o 4 espacios. Controla la profundidad del anidamiento de la salida en ambos lados.
- Pulsa Ejemplo para cargar un ejemplo breve si quieres ver el comportamiento antes de pegar tus propios datos, o Limpiar para vaciar ambos paneles.
- El panel derecho se actualiza según se ejecuta la conversión. La barra de estado inferior reporta una de tres cosas: una línea de éxito con el tamaño en bytes de la salida, un aviso de entrada vacía o un error de análisis con fila y columna basadas en 1 que señala el token infractor exacto.
- Pulsa Copiar en la cabecera de salida para llevarte el resultado.
La conversión se ejecuta en cuanto la entrada se analiza. No hay botón Generar que pulsar: corrige la entrada y la salida se refresca.
Características principales#
- Bidireccional, un único par de paneles. La misma disposición entrada/salida gestiona ambas direcciones; el conmutador decide qué analizador se ejecuta.
- Esquema núcleo YAML 1.2.
null,true/false, enteros, flotantes y cadenas entre comillas se resuelven exactamente como lo haría un analizador conforme al estándar, no como una heurística suelta. - Plegado de líneas desactivado. Las líneas largas de salida nunca se envuelven ni se eliden, así que un diff contra un archivo versionado muestra solo cambios reales.
- Localización exacta de errores. Una sangría mal alineada o un carácter
:suelto se reporta comofila:col, no como un genérico «no se pudo analizar». - Protegido contra profundidad. Las entradas profundamente anidadas (la clásica expansión «YAML billion-laughs») se limitan, así que un archivo hostil o recursivo por accidente no puede congelar la pestaña.
- Solo local. Tu configuración nunca sale de la página: no hay backend al que enviarla. A partir de un megabyte, el análisis pesado se delega a un worker en segundo plano para que la interfaz no se bloquee.
Ejemplo detallado#
Una tarea real habitual: una configuración de servicio escrita en YAML necesita ir en el cuerpo de una petición JSON. Pega esto en el panel izquierdo con YAML → JSON y sangría 2:
name: api-gateway
port: 8080
replicas: 3
targets:
- host: example.com
port: 443
- host: cdn.example.com
port: 8443
features:
retries: true
timeout_ms: 2500
El panel derecho produce JSON estricto, listo para analizar:
{
"name": "api-gateway",
"port": 8080,
"replicas": 3,
"targets": [
{
"host": "example.com",
"port": 443
},
{
"host": "cdn.example.com",
"port": 8443
}
],
"features": {
"retries": true,
"timeout_ms": 2500
}
}
Fíjate en que los valores YAML sin comillas 8080, true y 3 se convirtieron en un número, un booleano y un número JSON respectivamente: el esquema núcleo los tipó, no tuviste que hacerlo tú. Invierte la dirección (JSON → YAML) y pega de vuelta el JSON: obtienes la misma estructura anidada resangrada con guiones para los elementos de la lista, que es la forma que versionarías en un repositorio de configuración.
Preguntas frecuentes#
¿Se conservan mis comentarios YAML en el viaje de ida y vuelta?#
No. JSON no tiene sintaxis de comentarios, así que cualquier # comentario de tu YAML se lee y luego se descarta camino del JSON: simplemente no hay dónde ponerlo. Los comentarios se toleran en la entrada (nunca provocan un error), pero no pueden sobrevivir el cruce. Si los comentarios importan, conserva el YAML como fuente de verdad y genera JSON a partir de él cada vez.
¿Gestiona YAML multidocumento (archivos separados por ---)?#
Procesa el flujo de documentos y devuelve el documento inicial. La mayoría de los archivos de configuración y manifiestos son de un solo documento, así que rara vez es un problema; si tienes un flujo multidocumento, divídelo por los separadores --- y convierte cada parte.
¿YAML o JSON para mi archivo de configuración, cuál elijo?#
Usa YAML cuando lo edite a mano una persona y quieras una legibilidad con cierto aire a comentarios, con anclas y anidamiento por sangría. Usa JSON cuando lo produzca una máquina y lo consuma un analizador, o cuando el rigor importe (JSON tiene exactamente una forma legal de escribir cada valor, así que no hay ambigüedad que depurar). Esta herramienta existe para que no tengas que comprometerte con uno solo.
El error dice «fila 4, col 5» pero esa línea parece estar bien. ¿Qué pasa?#
Casi siempre es la sangría. YAML decide la estructura a partir de los espacios iniciales, así que un hijo que esté un espacio demasiado a la izquierda o a la derecha —o con una mezcla de tabuladores y espacios— se manifiesta como un error en la línea posterior al verdadero culpable, porque el analizador solo nota la inconsistencia al leer el siguiente token. Revisa primero la sangría de la línea anterior a la fila indicada.