Un ingeniero DevOps exporta una configuración de Kubernetes como YAML pero necesita enviarla a una API que solo acepta JSON. Un analista recibe datos de respuesta de una API en JSON pero los necesita en una hoja de cálculo. Un científico de datos exporta un CSV de una base de datos pero necesita JSON estructurado para un panel web.
La conversión de formatos no es solo una operación mecánica. Cada formato hace compromisos diferentes, y entender qué se pierde en la traducción es tan importante como saber cómo convertir.
Tres formatos, tres filosofías
Cada formato fue diseñado para un público y un problema diferente:
| Formato | Nacimiento | Diseñado para | Filosofía central |
|---|---|---|---|
| CSV | ~1972 | Intercambio de datos entre programas | Máxima simplicidad — solo filas y columnas |
| JSON | 2001 | Intercambio de datos web | Datos estructurados legibles por máquina con reglas estrictas |
| YAML | 2001 | Archivos de configuración | Datos estructurados legibles por humanos con sintaxis mínima |
CSV asume que tus datos son una tabla plana. Cada valor es una cadena. No hay concepto de anidamiento, tipado ni metadatos.
JSON asume que tus datos tienen estructura — objetos, arrays, tipos (strings, números, booleanos, null). Es estricto e inequívoco, lo que lo hace ideal para máquinas pero verboso para humanos.
YAML asume que un humano leerá y editará el archivo. Usa indentación en lugar de llaves, admite comentarios y tiene una sintaxis más relajada. Técnicamente, YAML es un superconjunto de JSON — cualquier documento JSON válido también es YAML válido.
YAML es un superconjunto de JSON Puedes pegar un documento JSON directamente en un parser YAML y funcionará. Lo contrario no es cierto — funcionalidades de YAML como comentarios, anclas y cadenas multilínea no tienen equivalente en JSON.
Escenarios de conversión del mundo real
Migración de configuración (JSON a YAML, YAML a JSON)
Esta es la conversión más común. Diferentes herramientas esperan diferentes formatos de configuración:
- Docker Compose, Kubernetes, GitHub Actions, Ansible usan YAML
- package.json, tsconfig.json, ESLint usan JSON
- Migrar entre herramientas a menudo significa convertir configuraciones
Esta conversión es sin pérdida en ambas direcciones para el contenido de datos — pero los comentarios YAML se pierden al convertir a JSON, ya que JSON no tiene sintaxis de comentarios.
Análisis de datos (JSON a CSV)
Las respuestas de API vienen en JSON. Los analistas necesitan hojas de cálculo. Esta conversión funciona bien para arrays JSON planos — arrays de objetos con claves idénticas se mapean naturalmente a filas y columnas.
Pero falla con datos anidados. Un objeto JSON con un campo address.city y un array skills no tiene representación CSV natural. El conversor debe elegir: aplanar claves anidadas (address.city se convierte en una columna), serializar valores anidados como cadenas o descartarlos.
Importación de datos (CSV a JSON)
El escenario inverso: importar datos de hoja de cálculo en una aplicación web o API. La conversión CSV a JSON crea un array de objetos, con las cabeceras de columna como claves. El problema es que CSV no tiene información de tipos — el número 42, la cadena "42" y el booleano true son todo texto en CSV. El conversor tiene que adivinar los tipos.
Legibilidad humana (JSON a YAML)
A veces simplemente necesitas hacer legible un archivo de configuración JSON denso. Convertir a YAML te da una indentación limpia y la posibilidad de añadir comentarios para documentación. Esto es especialmente valioso para archivos de configuración grandes que serán mantenidos por un equipo.
Qué se pierde en la conversión
Este es el conocimiento crítico que ahorra tiempo de depuración:
| Conversión | Qué se pierde |
|---|---|
| YAML a JSON | Comentarios (JSON no tiene sintaxis de comentarios) |
| JSON a CSV | Anidamiento (CSV es plano), tipos (todo se vuelve texto), arrays |
| CSV a JSON | Nada (pero los tipos deben inferirse — "42" vs 42) |
| CSV a YAML | Nada (mismo problema de inferencia de tipos) |
| JSON a YAML | Nada (YAML es un superconjunto de JSON) |
| YAML a CSV | Comentarios, anidamiento, tipos, anclas/alias |
El patrón es claro: las conversiones hacia CSV pierden más información, porque CSV es el formato más simple. Las conversiones entre JSON y YAML son casi sin pérdida. Y los comentarios YAML siempre se pierden al salir de YAML.
Bidireccional vs. unidireccional JSON-a-YAML y YAML-a-JSON son efectivamente bidireccionales (ida y vuelta segura, excepto los comentarios). JSON-a-CSV y YAML-a-CSV son unidireccionales para datos complejos — no se puede reconstruir el anidamiento desde un CSV plano.
Errores comunes al convertir
Las trampas de coerción de tipos de YAML
YAML interpreta automáticamente ciertas cadenas como tipos no-string. La palabra no se convierte en booleano false. La palabra yes se convierte en true. La cadena 1.0 se convierte en float. Códigos de país como NO (Noruega) han causado errores famosamente. Siempre pon entre comillas los valores ambiguos en YAML.
Confusión con delimitadores y codificación CSV
No todos los CSV usan comas. Los CSV europeos a menudo usan punto y coma (porque las comas son separadores decimales en muchos formatos numéricos europeos). Los valores separados por tabulación (TSV) son otra variante. Y las incompatibilidades de codificación de caracteres (UTF-8 vs Latin-1) producen caracteres acentuados ilegibles.
El problema de la coma final en JSON
JSON no permite comas finales. Esto es JavaScript válido: {"a": 1, "b": 2,} — pero es JSON inválido. Una sola coma final provoca un error de parseo.
Rendimiento con grandes conjuntos de datos
Para conjuntos de datos con millones de filas, CSV es significativamente más eficiente que JSON o YAML. JSON añade llaves, corchetes y comillas para cada valor. Un CSV con 1 millón de filas podría ser de 50 MB; el JSON equivalente podría ser de 150 MB.
Elegir el formato correcto desde el principio
En lugar de convertir después, elegir el formato correcto desde el inicio evita la pérdida de información:
- Datos tabulares para hojas de cálculo o bases de datos — CSV
- Datos estructurados para APIs o aplicaciones web — JSON
- Configuración que los humanos editarán — YAML
- Datos anidados complejos con comentarios — YAML
- Intercambio de datos entre sistemas — JSON
Para ir más allá
Convierte entre JSON, YAML y CSV al instante con herramientas basadas en el navegador:
- Convertir formatos de datos — pega tus datos, elige el formato destino, descarga el resultado
- JSON Formatter — validar, formatear y minificar JSON
- Conversor JSON a CSV — convertir arrays JSON a CSV listo para hojas de cálculo
- Conversor YAML-JSON — convertir entre YAML y JSON con manejo de comentarios
