Convertir CSV a JSON
Convierte un CSV exportado de Excel, Google Sheets o una base de datos en JSON listo para una API o un script. Detecta solo si el separador es coma, punto y coma o tabulador y respeta las comillas del estándar RFC 4180.
Cómo convertir CSV a JSON
- Pega el contenido del CSV o arrastra el archivo. Se lee en tu navegador, sin subirlo.
- Deja el delimitador en automático: la herramienta prueba coma, punto y coma, tabulador y barra vertical y elige el que produce el mismo número de columnas en todas las filas.
- Indica si la primera fila contiene los nombres de columna. Si hay nombres repetidos se renombran (
id,id_2) y los vacíos pasan acolumna3, etc. - Elige la estructura y copia o descarga el resultado.
Cómo se interpreta el CSV
El analizador sigue el RFC 4180, que es lo que generan Excel y la mayoría de programas:
- Un campo entre comillas dobles puede contener el delimitador, saltos de línea y comillas (escritas dobles:
""). Así,"Mesa ""nórdica"" 120 cm"se convierte enMesa "nórdica" 120 cm. - Se aceptan finales de línea Windows (CRLF) y Unix (LF), y se ignora la marca BOM que Excel añade al guardar como «CSV UTF-8».
- Si una comilla queda abierta, verás un error con la línea donde empieza; si alguna fila tiene distinto número de columnas, un aviso.
Conversión de tipos
CSV no tiene tipos: todo es texto. Con la opción activada, los valores numéricos pasan a número JSON, true/false a booleano y las celdas vacías a null. Cuando el separador no es la coma, se entiende también la coma decimal y el punto de miles habituales en España y gran parte de Latinoamérica: 89,90 → 89.9 y 1.149,00 → 1149.
Los valores con ceros a la izquierda (00125, códigos postales, teléfonos) se mantienen como texto para no perder información, igual que los números de más de 15 cifras, que JavaScript no puede representar con exactitud.
Ejemplo: las tres estructuras
Para un CSV con cabecera nombre,edad y filas Ana,34 y Luis,41:
| Estructura | Resultado | Cuándo usarla |
|---|---|---|
| Lista de objetos | [{"nombre":"Ana","edad":34},{"nombre":"Luis","edad":41}] | APIs, MongoDB, JavaScript: es la más habitual |
| Lista de listas | [["nombre","edad"],["Ana",34],["Luis",41]] | Datos tabulares compactos, gráficos |
| Objeto por columnas | {"nombre":["Ana","Luis"],"edad":[34,41]} | Pandas, análisis por columna |
CSV de Excel en español: el punto y coma
En configuraciones regionales donde la coma es el separador decimal (España, Argentina, Colombia, Chile y otros), Excel guarda los CSV con punto y coma como delimitador. Por eso muchos conversores pensados para el inglés generan una sola columna con todo el texto. La detección automática lo resuelve; si un caso concreto falla, fija el delimitador a mano.
Si ves caracteres como «Ã³» en lugar de «ó», el archivo se guardó en Windows-1252 y no en UTF-8: vuelve a exportarlo como «CSV UTF-8» desde Excel.
Después de convertir
Comprueba o embellece el resultado con el formateador o el validador de JSON. Para el camino inverso usa JSON a CSV. Si necesitas datos de ejemplo para probar, el generador de datos de prueba crea CSV y JSON ficticios, y para limpiar filas repetidas antes de convertir tienes eliminar líneas duplicadas.
Preguntas frecuentes
¿Cómo convierto un CSV de Excel a JSON?
Guarda la hoja como «CSV UTF-8», abre el archivo aquí o pega su contenido y copia el JSON. El separador de punto y coma que usa Excel en español se detecta solo.
¿Qué pasa si un campo contiene comas o saltos de línea?
Si va entre comillas dobles, como indica el estándar RFC 4180, se respeta completo. Las comillas dentro del campo deben ir duplicadas ("").
¿Por qué algunos números aparecen entre comillas en el JSON?
Porque tienen ceros a la izquierda (como un código postal 08001) o más de 15 cifras: convertirlos a número cambiaría su valor. También puedes desactivar la conversión de tipos para tener todo como texto.
¿Hay límite de tamaño?
No hay un límite fijo: el archivo se procesa en tu navegador. Con varios megabytes funciona bien; con archivos de cientos de MB el navegador puede quedarse sin memoria.