Resultado de la conversión de CSV a Markdown en FormatArc, que muestra el puente entre JSON, YAML, CSV y MarkdownResultado de la conversión de CSV a Markdown en FormatArc, que muestra el puente entre JSON, YAML, CSV y Markdown
Publicado: 2026-06-18

JSON vs YAML vs CSV vs Markdown: hoja de comparación de formatos de datos

Compara JSON, YAML, CSV y Markdown en una sola página: matriz de decisión, tabla de funciones, soporte de comentarios, ecosistema de parsers, contexto para LLM y conversión entre los cuatro formatos directamente en el navegador.

JSON, YAML, CSV y Markdown son cuatro formatos de texto con estructura, pero cada uno se diseñó para un trabajo distinto. Si usas CSV para un archivo de configuración, la estructura queda plana. Si eliges YAML para una respuesta de API, pierdes el rigor que buscabas. Guardar datos tabulares en JSON repite las claves en cada fila. Tratar Markdown como almacén primario te obliga a reconstruir la estructura más tarde. Elegir el formato equivocado se paga en herramientas, validación y horas de desarrollo.

Este artículo es una hoja de referencia de una sola página para responder "¿qué formato debo usar?". Empieza con una matriz de decisión rápida, sigue con una tabla de funciones, soporte de comentarios, ecosistema de parsers, matriz de decisión por caso de uso, errores comunes, elección para contexto LLM y referencias de especificaciones — todo en una pestaña.

Matriz de decisión rápida — elige un formato

Si solo lees una tabla, lee esta.

Caso de uso Formato recomendado Por qué
Petición o respuesta de API REST JSON Estricto, parser estándar en todos los lenguajes
Kubernetes / GitHub Actions / Docker Compose YAML Comentarios, anclas e indentación legible
Archivo de configuración de aplicación YAML (o TOML / JSON5) Necesita comentarios
Datos tabulares e ida y vuelta con Excel CSV Se abre directamente en hojas de cálculo
Salida de logs estructurados JSON Lines Un registro por línea, ideal para grep y jq
README de GitHub y documentación técnica Markdown Se renderiza en GitHub, Dev.to, Medium y tu CMS
Contexto para ChatGPT, Claude y Gemini Markdown Mejor eficiencia de tokens
Frontmatter + cuerpo de artículo en sitios estáticos YAML + Markdown Frontmatter para estructura, cuerpo para prosa
Tablas en documentos legibles Tabla Markdown Se renderiza en texto plano y en GitHub
Procesamiento numérico masivo CSV → DataFrame pandas / Polars lo leen rápido

Versión corta: JSON para intercambio entre máquinas, YAML para configuración editada a mano, CSV para datos tabulares, Markdown para prosa. Luego ajustas en los bordes según las excepciones que vemos abajo.

Pruébalo primero — convierte entre los cuatro formatos en tu navegador

Las diferencias se entienden mejor cuando pones el mismo dato en los cuatro formatos. FormatArc ofrece siete herramientas de navegador para convertir entre los cuatro formatos cubiertos en este artículo. Sin subida, sin ida y vuelta al servidor — los datos que pegas se quedan en tu pestaña.

Si alguna vez has dudado en pegar datos de producción en una herramienta online que sube los datos a su servidor, revisa ¿Son seguros los convertidores online? para un marco de evaluación de ese riesgo.

Lo que cubre este artículo — y lo que no

Comparamos cuatro formatos: JSON, YAML, CSV y Markdown. Son la combinación más frecuente en desarrollo web moderno, configuración, intercambio de datos y documentación, y coinciden exactamente con las siete herramientas que ofrece FormatArc.

Fuera de alcance, por diseño:

  • XML — todavía importante para SOAP, RSS, SVG y Office Open XML, pero rara vez se elige para proyectos nuevos.
  • TOML — usado por Cargo y pyproject.toml. Se solapa con YAML y JSON5 en el espacio de configuración y es poco común en trabajo orientado al navegador.
  • Parquet — formato binario por columnas para big data. Fuera del alcance de una comparación entre formatos de texto.
  • XLSX / ODS — formatos binarios de hoja de cálculo. Solo aparecen a través de su exportación a CSV.

Si quieres una comparación de cinco formatos que incluya XML o TOML, varios artículos competidores lo hacen. El ángulo aquí es distinto: Markdown se trata como ciudadano de primera, porque en 2026 está al lado de JSON y YAML en el flujo diario de cualquiera que escriba APIs, configuraciones, READMEs y prompts para LLM.

El mismo dato en los cuatro formatos

Lado a lado, con dos usuarios, edades y una lista de habilidades, los cuatro formatos muestran su personalidad.

JSON

{
  "users": [
    { "name": "Alice", "age": 30, "skills": ["Python", "Go"] },
    { "name": "Bob",   "age": 25, "skills": ["JavaScript"] }
  ]
}

YAML

users:
  - name: Alice
    age: 30
    skills:
      - Python
      - Go
  - name: Bob
    age: 25
    skills:
      - JavaScript

CSV

CSV no puede expresar anidamiento nativamente, así que skills debe aplanarse. Patrones comunes son unir con un delimitador, expandir en varias columnas o separar en otra tabla. La versión más simple con delimitador:

name,age,skills
Alice,30,Python;Go
Bob,25,JavaScript

Markdown

Markdown es un formato de documento, no de datos. La estructura ocurre a través de la extensión de tablas de GFM.

| name  | age | skills      |
|-------|-----|-------------|
| Alice | 30  | Python, Go  |
| Bob   | 25  | JavaScript  |

La misma información, cuatro formas distintas. JSON es estricto y fácil de parsear. YAML se lee de forma natural. CSV brilla en tablas pero no anida. Markdown se ve bien al renderizar pero pierde la estructura si lo tratas como almacén de datos.

Matriz de funciones por formato

¿Qué puede expresar realmente cada formato?

Función JSON YAML CSV Markdown
Estructura jerárquica (anidada) No (solo plano) Limitada (listas/citas anidadas)
Arrays Limitado (solo filas) Limitado (listas)
Números, booleanos, null Sí (con tipado implícito) No (por defecto string) No
Comentarios No Sí (#) No (en la práctica) Sí (<!-- -->)
Escape de cadenas Estricto Múltiples estilos Débil (variación entre librerías) Casi innecesario
Soporte binario No (vía Base64) No (igual) No (igual) No
Lectura por streaming Limitada (JSON Lines) Limitada No
Madurez de la spec RFC 8259 (2017) YAML 1.2.2 (2021) RFC 4180 (2005) CommonMark 0.31 (2024) + GFM
Dificultad de escritura manual Media Baja Baja (casos simples) Baja
Dificultad de parsing Baja Alta Media (variación entre libs) Alta (genera un árbol)
Naturalidad para datos tabulares Limitada Limitada Excelente Excelente (en sintaxis de tabla)
Tamaño práctico de un solo archivo Algunos MB Algunos MB Multi-GB posible Cientos de KB

JSON y YAML comparten el mismo modelo de datos subyacente (objetos, arrays, primitivos), por eso el round-trip entre ambos es directo. FormatArc ofrece YAML to JSON y JSON to YAML en ambas direcciones. Para un análisis más profundo de la comparación de solo dos formatos, ver YAML vs JSON: 7 diferencias.

Matriz de soporte de comentarios

Aquí es donde realmente se decide la elección del formato de configuración. Los estándares y los dialectos divergen.

Formato Comentarios Sintaxis Notas
JSON estándar (RFC 8259) No Los comentarios violan la spec
JSONC // /* */ Dialecto no estándar usado por VS Code
JSON5 // /* */ También permite comas finales y comillas simples
YAML # Parte de la spec, en cualquier parte de la línea
CSV (RFC 4180) No Algunas implementaciones tratan líneas con # como convención local
Markdown (CommonMark) <!-- --> Heredado de HTML
TOML # Referencia; misma forma que YAML

Los comentarios en JSON surgen a menudo. No están permitidos en JSON estándar y JSON.parse lanza un error. Ver ¿Se pueden escribir comentarios en JSON? para las salidas con JSON5 / JSONC / preprocesamiento.

Comparación del ecosistema de parsers

Cuando recurres a la biblioteca estándar de un lenguaje, ¿qué obtienes?

Lenguaje JSON YAML CSV Markdown
Node.js JSON.parse integrado js-yaml / yaml papaparse / csv-parse marked / remark
Python json integrado PyYAML / ruamel.yaml csv integrado / pandas / polars markdown / mistune
Go encoding/json integrado gopkg.in/yaml.v3 encoding/csv integrado goldmark
Rust serde_json serde_yaml / yaml-rust2 crate csv pulldown-cmark
Java Jackson / Gson SnakeYAML OpenCSV / Apache Commons CSV flexmark / commonmark-java
Navegador (JS puro) JSON.parse integrado js-yaml (CDN) papaparse marked / markdown-it

JSON y CSV vienen en la biblioteca estándar casi en todos lados. YAML y Markdown dependen de librerías externas, aunque las opciones de facto son estables. FormatArc lleva yaml, papaparse, marked, turndown y remark al bundle del navegador, lo que hace posible la conversión sin servidor.

Matriz de decisión por caso de uso

En decisiones reales no preguntas "¿qué formato se lee mejor?", sino emparejas un caso de uso concreto con un formato. Busca tu fila.

Caso de uso Primera opción Alternativa Evitar
Petición / respuesta de API REST JSON (MessagePack / Protobuf) YAML, CSV, Markdown
Respuesta GraphQL JSON Igual
Spec OpenAPI / AsyncAPI YAML (o JSON) CSV, Markdown
Manifiestos de Kubernetes YAML JSON CSV, Markdown
GitHub Actions / CircleCI / GitLab CI YAML Igual
Docker Compose YAML Igual
Configuración de aplicación YAML / TOML / JSON5 CSV, Markdown
Variables de entorno .env / TOML YAML (confusión con comentarios de línea)
Logs estructurados JSON Lines YAML, CSV, Markdown
Exportación de métricas por lotes CSV Parquet YAML, Markdown
Ida y vuelta con Excel / Sheets CSV / XLSX YAML, Markdown
Importación / exportación de BD CSV JSON Lines YAML, Markdown
Frontmatter de artículos en sitios estáticos YAML TOML / JSON CSV
Cuerpo de blog técnico / README Markdown reStructuredText JSON, YAML, CSV
Documentos de especificación / requisitos Markdown Igual
Texto enriquecido en Slack / Discord Markdown (dialecto) Igual
Contexto para ChatGPT, Claude Markdown Texto plano HTML (ver abajo)
Salida estructurada de LLM JSON YAML (tipado implícito), Markdown
Definiciones de tools para agentes JSON YAML CSV, Markdown
Fuente única de tabla Markdown CSV → conversión Tablas Markdown escritas a mano
Tablas en un README Tabla Markdown (GFM) CSV, HTML

Escribir tablas Markdown a mano es tedioso, así que mantén un CSV o JSON como fuente y usa CSV to Markdown para renderizar la tabla. Ver Tablas en README de GitHub desde CSV o JSON para el flujo completo.

Errores comunes de elección

Patrones que se repiten en equipos distintos.

CSV para datos anidados

Meter { "user": { "address": { "city": "Tokyo" } } } en CSV obliga a inventar una convención de aplanamiento que el consumidor tiene que revertir. Si necesitas anidamiento, usa JSON o YAML, o divídelo en un conjunto relacional de CSVs que se unan del lado del consumidor.

Caer en el tipado implícito de YAML

YAML 1.1 convertía no, yes, on, off en booleanos. El famoso "problema de Noruega" es que el código de país NO se convierte silenciosamente en false. YAML 1.2 corrigió partes de esto, pero muchos parsers siguen por defecto en modo compatible con 1.1. Pon entre comillas cualquier cadena que pudiera confundirse con un booleano.

country: "NO"   # seguro — cadena explícita
country:  NO    # podría volverse false en un parser compatible con YAML 1.1

Escribir comentarios en JSON estándar

El settings.json de VS Code permite comentarios, lo que lleva a asumir que el JSON estándar también. No los permite. settings.json es JSONC, un dialecto no estándar. JSON.parse lanza error con cualquier comentario. Si necesitas comentarios, elige JSON5, JSONC o YAML, o quítalos en un paso de preprocesamiento.

Subestimar la variación de dialectos CSV

RFC 4180 es una referencia; el CSV del mundo real es un enjambre de dialectos. Delimitadores (, \t ; |), finales de línea (LF vs CRLF), comillas, BOM, codificación de caracteres, presencia de cabecera y escape de saltos de línea embebidos varían según quién lo escriba. "Es solo CSV" ha costado más horas de depuración que YAML. Verifica los dos extremos con una muestra antes de pasar a producción.

Tratar Markdown como formato de datos legible por máquina

Markdown es un formato de documento. Sus tablas son una extensión de GFM, no parte de CommonMark, y las celdas con pipes o saltos de línea se rompen en renderizadores que no son GFM. Ver Tabla Markdown no se renderiza para los fallos más comunes.

Asumir que las tablas Markdown son CommonMark

No lo son. La sintaxis de tabla es territorio de GFM, MultiMarkdown o Pandoc. Un renderizador en modo CommonMark estricto convierte tu tabla en un párrafo feo. GitHub, Dev.to, Zenn y Qiita son compatibles con GFM; motores de blog antiguos y wikis pueden no serlo. Ver CommonMark vs GFM para el límite.

Elección para contexto LLM

Para entrada de ChatGPT, Claude o Gemini, Markdown es la opción por defecto. Usa aproximadamente entre un tercio y una décima parte de los tokens del HTML equivalente, y los benchmarks externos muestran consistentemente mayor precisión de extracción en tablas, listas y bloques de código. Para salida estructurada de LLM (function calling, modo JSON), JSON es obligatorio. El patrón asimétrico — Markdown a la entrada, JSON a la salida — es el que la mayoría de prompts en producción terminan adoptando.

YAML es arriesgado como entrada de LLM porque su indentación es frágil bajo tokenización y su tipado implícito puede convertir cadenas en booleanos. Los números a nivel de token y la ruta de conversión sin subida están detallados en Markdown vs HTML para LLM.

Specs e historia

Tabla de referencia para quienes toman decisiones.

Formato Estándar Primera versión Última MIME type Extensión
JSON RFC 8259 / ECMA-404 2006 (RFC 4627) 2017 (RFC 8259) application/json .json
YAML YAML 1.2.2 2004 (YAML 1.0) 2021 (1.2.2) application/yaml .yaml / .yml
CSV RFC 4180 1970s (informal) 2005 (RFC 4180) text/csv .csv
Markdown CommonMark 0.31 2004 (Gruber original) 2024 (CommonMark 0.31) text/markdown .md / .markdown
GFM GitHub Flavored Markdown Spec en 2017 Actualización continua text/markdown .md

JSON y CSV tienen RFCs estables. YAML y Markdown tienen familias de dialectos vivos (YAML 1.1 vs 1.2; CommonMark vs GFM vs MultiMarkdown vs Pandoc). Verifica siempre el dialecto del consumidor cuando la interoperabilidad importa.

Para los fundamentos de cada formato:

Convierte entre formatos con las siete herramientas de FormatArc

Las siete rutas canónicas de conversión entre los cuatro formatos viven en el navegador en FormatArc. Nada de lo que pegas sale de tu pestaña.

Ruta Herramienta Uso típico
Formatear y validar JSON JSON Formatter Inspeccionar respuestas de API, corregir errores
YAML a JSON YAML to JSON Pasar configuración a una API, procesar en CI
JSON a YAML JSON to YAML Convertir respuesta de API en archivo de configuración
CSV a JSON CSV to JSON Estructurar datos tabulares para una API
CSV a tabla Markdown CSV to Markdown Pegar una tabla en un README o artículo
Markdown a HTML Markdown to HTML Pegar en un CMS que espera HTML
HTML a Markdown HTML to Markdown Limpiar una página web, preparar contexto LLM

Encadenadas obtienes flujos como "JSON de API a YAML de configuración", "Excel a CSV a tabla Markdown en README", o "HTML de página web a Markdown para un prompt de ChatGPT" — todo en el navegador.

Resumen

La lista final para cuando tienes que elegir rápido.

  • Intercambio de datos entre máquinas: JSON
  • Configuración editada a mano: YAML
  • Datos tabulares: CSV
  • Prosa legible por humanos: Markdown
  • Entrada LLM: Markdown; salida LLM: JSON

No hay un formato "correcto". Hay el formato que optimiza lo que te importa — legibilidad, rigor, amplitud de parsers, soporte de comentarios, eficiencia de tokens para LLM. Usa las matrices de arriba como tabla de consulta única la próxima vez que empieces un proyecto.

Referencias de specs: