CSV (Valores Separados por Comas) y JSON (Notación de Objetos JavaScript) son dos de los formatos de intercambio de datos más utilizados. CSV sobresale con datos tabulares con mínimo overhead, mientras que JSON maneja datos jerárquicos y anidados con facilidad. Saber cuándo y cómo convertir entre ellos es una habilidad fundamental para desarrolladores.
¿Por qué convertir CSV a JSON?
Los archivos CSV son compactos y fáciles de generar desde hojas de cálculo, bases de datos y registros. Pero CSV tiene limitaciones significativas: no tiene un estándar para tipos (todo es una cadena), no soporta estructuras anidadas y manejo ambiguo de caracteres especiales. JSON resuelve estos problemas proporcionando un formato auto-descriptivo que las APIs y frameworks modernos prefieren.
Los escenarios comunes incluyen migrar datos de hojas de cálculo a una aplicación web, transformar exportaciones de bases de datos para consumo de APIs, preprocesar datos para bibliotecas de visualización como D3.js o Chart.js, y alimentar pipelines de aprendizaje automático que esperan entrada estructurada.
La transformación básica
La conversión más simple trata la primera fila como encabezados y cada fila posterior como un registro:
nombre,edad,ciudadAlice,30,Nueva YorkBob,25,San FranciscoSe convierte en:
[ { "nombre": "Alice", "edad": 30, "ciudad": "Nueva York" }, { "nombre": "Bob", "edad": 25, "ciudad": "San Francisco" }]Observa que edad ahora es un número, no una cadena. CSV no tiene información de tipo, por lo que un buen conversor debe inferir tipos durante la conversión. El CSV to JSON Converter maneja esto automáticamente.
Manejo de delimitadores
La coma es el delimitador predeterminado, pero los archivos CSV frecuentemente usan punto y coma, tabuladores o pipes — especialmente en locales europeos donde las comas son separadores decimales. Un conversor robusto debe manejar:
- Delimitadores personalizados — Los valores separados por tabuladores usan
\t - Campos entre comillas — Cuando un campo contiene el delimitador:
"Nueva York, NY" - Comillas escapadas — Una comilla dentro de un campo entre comillas se duplica
- Saltos de línea en campos — Los campos entre comillas pueden abarcar varias líneas
No intentes dividir por comas de forma simple — usa una biblioteca de parsing CSV adecuada o una herramienta que maneje casos extremos automáticamente.
Coerción de tipos
Como CSV no distingue entre 42 (número) y "42" (cadena), necesitas una estrategia para inferir tipos:
function coerce(valor) { if (valor === '') return null; if (valor === 'true') return true; if (valor === 'false') return false; if (/^-?\d+(\.\d+)?$/.test(valor)) return Number(valor); return valor;}Manejo de datos anidados
CSV es plano por diseño. Cuando tus datos tienen estructuras anidadas, tienes dos estrategias principales: notación de puntos en los encabezados (direccion.ciudad, direccion.codigo) y notación de corchetes (etiquetas[0], etiquetas[1]). Un buen conversor colapsa estas en objetos JSON anidados y arrays apropiados.
Errores comunes
- Codificación de caracteres — Los archivos CSV pueden ser UTF-8, Latin-1 o Windows-1252. Siempre detecta la codificación antes de parsear.
- Longitudes de fila inconsistentes — Algunas filas pueden tener menos columnas que los encabezados.
- CSV sin encabezados — No todos los archivos CSV tienen encabezados. Genera nombres de columna automáticamente.
- Archivos grandes — No cargues un CSV de 2 GB en memoria. Usa parsers de streaming.
- BOM (Marca de Orden de Bytes) — Algunos archivos CSV comienzan con un BOM UTF-8 que puede romper el parsing de encabezados.
Pruébalo
Si necesitas convertir datos CSV a JSON rápidamente, usa una herramienta local para que la conversión ocurra en tu navegador — sin subir datos a ningún lugar.