Ya sea que estés configurando una aplicación web, intercambiando datos entre servicios, analizando una exportación de hoja de cálculo o leyendo una respuesta de API, encontrarás datos almacenados en formatos de texto estructurado. Los cuatro más comunes son JSON, YAML, CSV y XML.
Cada formato fue diseñado con objetivos diferentes, y elegir el correcto depende de tu caso de uso. Este artículo explica qué es cada formato, cómo se ve, cuándo usarlo y cómo se comparan entre sí.
JSON — JavaScript Object Notation
JSON se ha convertido en el formato dominante de intercambio de datos en la web. A pesar de su nombre, es independiente del lenguaje y se usa en todas partes.
Ejemplo de sintaxis:
{
"name": "Alice Martin",
"age": 34,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Lyon",
"country": "France"
}
}
Características principales:
- Pares clave-valor con una sintaxis limpia y legible
- Admite cadenas, números, booleanos, arrays, objetos y null
- No permite comentarios en JSON estándar
- Sintaxis estricta — las comas finales y las comillas simples son errores
Casos de uso comunes: APIs REST, archivos de configuración (package.json, tsconfig.json), bases de datos NoSQL (MongoDB), intercambio de datos entre frontend y backend.
Dato útil. La sintaxis estricta de JSON es tanto una fortaleza como una debilidad. Hace que el análisis sea fiable e inequívoco, pero también significa que una sola coma faltante o una coma final extra romperá todo el archivo.
YAML — YAML Ain't Markup Language
YAML fue diseñado para ser el formato de serialización de datos más legible por humanos posible. Usa indentación en lugar de corchetes y es particularmente popular para archivos de configuración.
Ejemplo de sintaxis:
name: Alice Martin
age: 34
skills:
- Python
- SQL
- Docker
address:
city: Lyon
country: France
Características principales:
- Estructura basada en indentación (sin corchetes ni llaves)
- Admite comentarios con
# - Admite todos los tipos de datos JSON más otros (fechas, cadenas multilínea)
- Sensible a espacios en blanco — una indentación incorrecta rompe el archivo
Casos de uso comunes: Archivos Docker Compose, manifiestos de Kubernetes, pipelines CI/CD (GitHub Actions, GitLab CI), playbooks de Ansible, configuración de Hugo/Jekyll.
YAML es un superconjunto de JSON, lo que significa que cualquier documento JSON válido también es YAML válido. Sin embargo, la flexibilidad de YAML puede ser un arma de doble filo — su conversión implícita de tipos (por ejemplo, yes interpretado como booleano true, o 3.10 convirtiéndose en 3.1) ha causado muchos errores sutiles.
CSV — Comma-Separated Values
CSV es el formato de datos estructurados más simple. Almacena datos tabulares como texto plano, con cada línea siendo una fila y los valores separados por comas (o a veces punto y coma, tabulaciones u otros delimitadores).
Ejemplo de sintaxis:
name,age,city,country
Alice Martin,34,Lyon,France
Bob Dupont,28,Paris,France
Carol Smith,41,London,UK
Características principales:
- Extremadamente simple — solo texto con delimitadores
- Sin tipos de datos — todo es una cadena
- Sin forma estándar de representar datos anidados
- Sin estándar universal oficial (RFC 4180 existe pero no se sigue universalmente)
- Los tamaños de archivo son muy pequeños
Casos de uso comunes: Exportaciones de hojas de cálculo, importaciones/exportaciones de bases de datos, análisis de datos (pandas, R), intercambio simple de datos, archivos de registro.
La simplicidad de CSV es su mayor fortaleza y su mayor limitación. Es perfecto para datos planos y tabulares, pero no puede representar estructuras jerárquicas. Los casos especiales (comas en valores, campos multilínea, problemas de codificación) hacen que el análisis sea más complejo de lo que parece a primera vista.
XML — Extensible Markup Language
XML fue el formato dominante de intercambio de datos antes de que JSON lo reemplazara. Usa una sintaxis basada en etiquetas similar a HTML y admite características complejas como esquemas, espacios de nombres y transformaciones.
Ejemplo de sintaxis:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>Alice Martin</name>
<age>34</age>
<skills>
<skill>Python</skill>
<skill>SQL</skill>
<skill>Docker</skill>
</skills>
<address>
<city>Lyon</city>
<country>France</country>
</address>
</person>
Características principales:
- Estructura basada en etiquetas con etiquetas de apertura y cierre
- Admite atributos, espacios de nombres, esquemas (XSD) y transformaciones (XSLT)
- Admite comentarios
- Muy verboso comparado con otros formatos
- Estándar extremadamente bien definido con validación estricta
Casos de uso comunes: Servicios web SOAP, integraciones empresariales, formatos de documentos (DOCX, SVG, RSS), archivos de configuración en ecosistemas Java/.NET, intercambio de datos gubernamentales y financieros.
XML es más verboso que JSON o YAML, pero sus capacidades de validación de esquemas lo hacen invaluable en contextos donde la integridad de los datos y los contratos formales entre sistemas son críticos.
Comparación lado a lado
| Característica | JSON | YAML | CSV | XML |
|---|---|---|---|---|
| Legibilidad humana | Buena | Excelente | Buena (tabular) | Regular |
| Verbosidad | Baja | Baja | Muy baja | Alta |
| Comentarios | No | Sí | No | Sí |
| Datos anidados | Sí | Sí | No | Sí |
| Tipos de datos | Básicos | Ricos | Ninguno (todo cadenas) | Vía esquema |
| Validación de esquema | JSON Schema | Sin estándar | No | XSD |
| Tamaño de archivo | Pequeño | Pequeño | Mínimo | Grande |
| Velocidad de análisis | Rápida | Moderada | Rápida | Moderada |
| Dominio principal | APIs Web | Config DevOps | Datos/hojas cálculo | Empresarial |
Cuándo usar cuál
- Elige JSON cuando construyas APIs web, almacenes configuración para proyectos JavaScript/TypeScript o intercambies datos entre servicios. Es la opción predeterminada para la mayoría de las aplicaciones modernas.
- Elige YAML cuando escribas archivos de configuración que los humanos leerán y editarán frecuentemente. Su legibilidad y soporte de comentarios lo hacen ideal para DevOps e infraestructura como código.
- Elige CSV cuando trabajes con datos tabulares, importes/exportes desde hojas de cálculo o bases de datos, o cuando el tamaño del archivo deba ser mínimo. Evítalo para cualquier cosa jerárquica.
- Elige XML cuando trabajes con sistemas empresariales, APIs SOAP o contextos que requieran validación formal de esquemas. También es la opción correcta cuando necesitas marcado orientado a documentos (como SVG o RSS).
Conversión entre formatos
La conversión entre estos formatos es una tarea común. Algunas cosas a tener en cuenta:
- JSON a YAML (y viceversa) generalmente no tiene pérdida ya que YAML es un superconjunto de JSON.
- CSV a JSON/YAML funciona bien para datos planos pero requiere decisiones sobre la estructura para salida anidada.
- XML a JSON puede perder información (atributos, espacios de nombres, ordenamiento) porque JSON no tiene conceptos equivalentes.
- Cualquier formato a CSV funciona solo si los datos son planos o pueden aplanarse de forma significativa.
Consejo. Al convertir entre formatos, siempre verifica la salida. Las conversiones automáticas pueden perder datos silenciosamente, especialmente con atributos XML, conversión de tipos YAML o casos especiales de codificación CSV.
Para saber más
ToolK.io proporciona herramientas gratuitas para convertir entre JSON, YAML, CSV y XML, formatear y validar tus datos, y explorar tutoriales relacionados para trabajar con datos estructurados en tus proyectos.
