Convertir CSV a JSON online — De tabla a objetos
Convierte CSV a JSON (detección de separador, cabecera, tipos y anidado)
Funciona en tu navegador · no se sube nada
Qué es
El CSV es la forma habitual de sacar una tabla de una hoja de cálculo o de una base de datos, mientras que el código web casi siempre quiere JSON. Esta herramienta convierte el CSV que pegues en JSON. Por defecto obtienes un array de objetos con las claves de la fila de cabecera; sin cabecera, un array de arrays.
Cómo se usa
- Pega el CSV completo en la entrada o abre un archivo con Abrir archivo CSV (los archivos de Excel guardados en Windows-1252 o EUC-KR se abren tal cual).
- Deja el separador en Detectar automáticamente o elige uno. Desactiva la opción de cabecera si la primera fila ya son datos.
- Activa la conversión de tipos si quieres números y true/false como tipos JSON.
- Activa la reconstrucción del anidado para convertir una columna como
address.cityde nuevo en{"address":{"city":...}}. Viene muy bien con CSV generados por un conversor de JSON a CSV. - Elige la sangría y copia el resultado.
Cómo funciona
-
El análisis sigue la RFC 4180. Los separadores y saltos de línea dentro de comillas dobles forman parte del valor, y dos comillas dobles seguidas se leen como una. Las líneas completamente vacías se ignoran.
-
La conversión de tipos solo afecta a
trueyfalse(en minúsculas) y a la notación decimal simple como-12,3.5o1e3.007,+1,1e999y los enteros mayores que 9007199254740991 se quedan como cadenas. Una celda vacía es una cadena vacía. -
Los nombres de cabecera repetidos pasan a ser
name,name_2,name_3, para que no desaparezca ninguna columna. -
La reconstrucción del anidado agrupa las cabeceras con puntos en objetos y expande en arrays y objetos las celdas que empiezan por
[o{y son JSON válido. Si una clave con puntos choca con un valor ya existente, se queda como clave literal. -
Si la entrada empieza con un BOM UTF-8, se elimina.
-
Límites de la conversión de ida y vuelta: las celdas vacías se convierten en cadenas vacías, no en
null, y con la conversión de tipos activada las cadenas numéricas como"123"pasan a ser el número123, así que un viaje JSON → CSV → JSON puede no reproducir exactamente el original.
Ejemplos
Entrada:
name,age,address.city
José Núñez,30,Sevilla
Resultado con la conversión de tipos y la reconstrucción del anidado activadas:
[{"name": "José Núñez", "age": 30, "address": {"city": "Sevilla"}}]
Preguntas frecuentes
¿Tengo que elegir el separador?
No hace falta. Por defecto se detecta automáticamente entre coma, punto y coma, tabulador y barra vertical según el aspecto de las primeras líneas. Si algún valor contiene muchos caracteres de otro separador y la detección falla, elígelo tú. El separador detectado aparece encima del resultado.
¿Por qué mis números salen como cadenas?
Por defecto todos los valores se quedan como cadenas. Activa Convertir números y true/false para cambiarlo. Aun así, valores como 007 con cero inicial, +1 o los enteros mayores que 2^53 siguen siendo cadenas para no perder información.
¿Un CSV guardado desde Excel conserva las tildes y la ñ?
Abre el archivo con **Abrir archivo CSV**. Si tiene marca de orden de bytes UTF-8 o UTF-16, esa marca decide la codificación; si no, se lee como UTF-8, si falla como EUC-KR (CP949, el predeterminado de Excel en coreano) y, si tampoco es EUC-KR válido, como Windows-1252 (el de Excel en español y otros idiomas de Europa occidental). La página indica cuál ha usado. El texto que ya aparece roto después de copiarlo de otro programa no se arregla pegándolo, así que abre el archivo directamente.
¿Qué pasa con las filas que tienen un número de campos distinto?
Se convierten igualmente y la herramienta enumera esos números de fila en Filas que revisar. Si faltan celdas, sus claves no aparecen en el resultado; si sobran, se descartan.