Cómo convertir JSON y YAML con seguridad
Selecciona la dirección, pega un documento y convierte. La parte YAML admite solo escalares, secuencias y mapas representables en JSON, lo que evita etiquetas JavaScript y tipado implícito inesperado.
- Elige JSON a YAML para una representación más legible, o YAML a JSON para APIs y herramientas.
- Pega un documento completo y válido según el esquema restringido.
- Revisa el resultado; los objetos y matrices se conservan y los alias acíclicos se expanden.
- Corrige avisos de enteros grandes y errores de etiquetas, claves bloqueadas, ciclos o valores no admitidos.
Ejemplos y comportamiento esperado
| Entrada | Salida | Notas |
|---|---|---|
{"name":"api","ports":[80,443]} |
name: api
ports:
- 80
- 443 |
Los objetos se convierten en mapas y las matrices en secuencias. |
enabled: true
retries: 3 |
{
"enabled": true,
"retries": 3
} |
Booleanos y números compatibles conservan su tipo. |
message: Hola 👋 |
{"message":"Hola 👋"} |
Unicode se conserva en ambos formatos. |
date: 2026-07-29 |
{"date":"2026-07-29"} |
Con este esquema una fecha aparente sigue siendo cadena. |
payload: !!js/function function(){} |
YAML rechazado |
No se permiten etiquetas específicas de JavaScript. |
__proto__:
polluted: true |
Clave peligrosa rechazada |
Las claves de prototipo se bloquean antes de producir JSON. |
Modelo de datos y esquema elegido
Se usa JSON_SCHEMA de js-yaml, no el esquema predeterminado más amplio. Se admiten mapas con claves de texto, secuencias, cadenas, números finitos, booleanos y null. Así no se construyen automáticamente fechas, binarios, expresiones regulares ni valores específicos de JavaScript.
YAML es más amplio que JSON, por lo que un documento YAML válido puede ser rechazado. Etiquetas personalizadas y tipos que no se representan con fiabilidad en JSON están fuera del alcance. Si un producto depende de ellos, utiliza su parser oficial y revisa su seguridad.
- Las claves de mapas deben poder ser cadenas JSON.
- No se admiten funciones, símbolos, undefined ni números no finitos.
- Los escalares con apariencia de fecha permanecen como texto.
Mapas, secuencias, anclas y alias
Los objetos JSON corresponden a mapas YAML y las matrices a secuencias. El orden suele mantenerse para presentación, pero la semántica no debería depender de él. Los alias YAML pueden crear referencias compartidas; el conversor recorre el resultado y detecta ciclos.
Un alias acíclico solo puede representarse en JSON duplicando los datos. Una autorreferencia o un ciclo no pueden serializarse y se rechazan. En JSON a YAML se desactiva la generación de referencias para no introducir anclas inesperadas.
- Los alias son una función de YAML, no de JSON.
- Los grafos cíclicos se rechazan antes de JSON.stringify.
- El orden de claves normalmente es presentación.
Contaminación de prototipos
__proto__, prototype y constructor pueden ser peligrosos cuando datos no fiables se combinan con objetos JavaScript. La herramienta bloquea esos nombres en cualquier nivel y reconstruye mapas sin prototipo para evitar propiedades heredadas.
Es defensa adicional, no sustituto de la aplicación receptora. El destino debe validar un esquema de lista permitida y evitar merges recursivos de claves arbitrarias en objetos privilegiados o configuraciones.
- No mezcles configuración no fiable con valores predeterminados.
- Valida nombres y tipos en el destino.
- Mantén actualizado el parser YAML.
Usos habituales
Se utiliza para pasar ejemplos de API a documentación YAML, preparar borradores de configuración, crear solicitudes JSON y entender la relación entre sangría, secuencias y mapas.
En producción revisa comentarios perdidos, comillas, tipos y el esquema específico del producto. Distintas implementaciones YAML pueden interpretar escalares de forma diferente, así que prueba con el software final.
- Preparar una solicitud JSON desde YAML.
- Hacer más legible un ejemplo JSON.
- Comprobar el tipo de cada escalar.
- Eliminar alias antes de un sistema solo JSON.
Errores y límites de compatibilidad
Se informan JSON inválido, sangría o comillas YAML incorrectas, etiquetas no admitidas, claves peligrosas, valores incompatibles y ciclos. Las tabulaciones de sangría y los dos puntos ambiguos son errores frecuentes.
No se conservan comentarios, nombres de anclas, estilo de escalares, directivas ni espacios exactos. Tampoco se tratan varios documentos separados por ---. Es un conversor de datos compatibles con JSON, no un formateador YAML sin pérdida.
- Los comentarios se pierden al pasar por JSON.
- !!js/function se rechaza.
- Valida la configuración con la aplicación antes de desplegar.
Seguridad, privacidad y recursos
El análisis ocurre en la pestaña, sin envío ni persistencia intencionados. El esquema está restringido y una revisión posterior bloquea claves peligrosas, objetos no admitidos y ciclos. No se habilitan tipos ejecutables.
Grafos de alias grandes y estructuras profundas pueden consumir memoria. No proceses archivos ilimitados de atacantes en una estación privilegiada. Elimina secretos antes de compartir la salida.
- Impón límites de tamaño y profundidad en tus aplicaciones.
- Que sea texto no significa que sea seguro.
- Evita claves privadas en capturas y tickets.
Diferencias con formato y CSV
El formateador JSON solo cambia espacios; este conversor cambia el lenguaje de serialización. CSV exige registros tabulares, cabeceras y una estrategia para anidados, mientras YAML conserva la estructura completa compatible con JSON.
Usa validadores YAML del producto para etiquetas especiales, un esquema para reglas de campos y el formateador JSON si el único problema es sintáctico. Elegir la herramienta más estrecha reduce cambios semánticos.