Qué hace este convertidor
CSV es el formato de exportación habitual de hojas de cálculo y bases de datos: un registro por línea y los valores separados por comas (o por punto y coma, como verás más abajo). JSON es lo que esperan la mayoría de las API, el código JavaScript y las bases de datos NoSQL. Esta herramienta sirve para convertir CSV a JSON y también para hacer el camino inverso.
Si el CSV tiene una fila de encabezado, cada línea se convierte en un objeto JSON y los nombres de las columnas pasan a ser las claves. Sin fila de encabezado, cada línea se convierte en un array de valores. El análisis lo hace Papa Parse, una biblioteca de CSV muy probada que maneja campos entre comillas, comas dentro de las comillas y saltos de línea dentro de una celda.
Cómo usarlo
- Elige CSV a JSON (o JSON a CSV para la dirección contraria).
- Pega tus datos, pulsa Abrir archivo para cargar un archivo
.csvo.tsv, o pulsa Ejemplo. - Ajusta las opciones. El JSON se actualiza cada vez que las cambias:
- Delimitador: Detectar, Coma, Punto y coma, Tabulación o Barra vertical.
- Resultado: 2 espacios, 4 espacios o Minificado.
- La primera fila es el encabezado: si está activado, obtienes objetos con claves con nombre; si no, arrays.
- Convertir números y true/false: convierte
12en un número ytrueen un booleano. Si lo desactivas, todos los valores se quedan como cadenas. - Omitir líneas vacías: ignora las filas en blanco, que las hojas de cálculo suelen añadir al final.
- Pulsa Copiar, o Descargar para guardar el resultado como archivo
.json.
La línea de estado muestra cuántas filas y columnas se leyeron y qué delimitador se detectó.
CSV de Excel en español. En español la coma es el separador decimal, así que Excel suele guardar los CSV con punto y coma entre columnas. No tienes que hacer nada: con Detectar, el convertidor reconoce el punto y coma y la línea de estado lo indica (“delimitador detectado: punto y coma”). También puedes elegir Punto y coma a mano.
Los decimales con coma no se convierten en números. Con el CSV nombre;ciudad;precio;cantidad y la fila Muñoz;Cádiz;2,50;3, la herramienta devuelve "precio": "2,50" como cadena y "cantidad": 3 como número. Un importe como 1.234,56 también se queda como texto. Si necesitas números, cambia el separador decimal a punto antes de exportar (en las opciones avanzadas de Excel, desactivando los separadores del sistema) o corrige esos valores después.
Las tildes y la ñ se conservan sin problema. Si abres el archivo con Abrir archivo, guárdalo en Excel como “CSV UTF-8 (delimitado por comas)”: la herramienta lee los archivos como UTF-8, y el CSV clásico de Excel usa otra codificación, por lo que “Muñoz” aparecería con un carácter extraño. Otra opción es copiar las celdas en Excel y pegarlas aquí: llegan separadas por tabulaciones, que también se detectan solas.
Ejemplo
Este CSV, con un nombre entre comillas que contiene una coma:
id,name,email,city,signup_date,active,orders
1,Ada Lovelace,[email protected],London,2024-03-01,true,12
2,"Hopper, Grace",[email protected],New York,2024-04-17,false,3
se convierte en:
[
{
"id": 1,
"name": "Ada Lovelace",
"email": "[email protected]",
"city": "London",
"signup_date": "2024-03-01",
"active": true,
"orders": 12
},
{
"id": 2,
"name": "Hopper, Grace",
"email": "[email protected]",
"city": "New York",
"signup_date": "2024-04-17",
"active": false,
"orders": 3
}
]
Las comillas alrededor de “Hopper, Grace” mantuvieron la coma dentro del nombre. Los identificadores y el número de pedidos pasaron a ser números, true y false pasaron a ser booleanos, y las fechas se quedaron como cadenas porque JSON no tiene un tipo de fecha.
Valores que se quedan como texto
Convertir en número todo lo que parece un número puede estropear los datos. Este convertidor deja un valor como texto cuando convertirlo lo cambiaría:
[
{
"name": "Ada",
"zip": "02134",
"phone": "0207 946 0000"
}
]
El código postal conserva su cero inicial. La misma regla se aplica a los identificadores con ceros iniciales y a los enteros más largos de lo que JavaScript puede guardar con exactitud. Un precio escrito con coma decimal, como 2,50 en un archivo separado por punto y coma, también se queda como cadena, porque no es un número JSON válido.
De JSON a CSV
Pulsa JSON a CSV y pega un array de objetos. Cada clave que aparece en cualquier objeto se convierte en una columna, en el orden en que aparece por primera vez. Con Aplanar objetos anidados activado, los datos anidados reciben nombres de columna con puntos:
id,name,address.city,address.zip,tags
1,Ada,London,NW1,"[""admin"",""dev""]"
2,Grace,New York,,
Grace no tenía código postal, así que esa celda está vacía. El array de etiquetas se escribió como texto JSON, con sus comillas duplicadas como exige el formato CSV. Un array de arrays se escribe fila por fila, sin encabezado. Pulsa Descargar para guardarlo como archivo .csv que Excel, Numbers y Google Sheets pueden abrir.
En esta dirección el delimitador por defecto es la coma. Si vas a abrir el archivo en Excel en español, elige Punto y coma para que cada valor caiga en su columna. Los decimales se escriben con punto, como en JSON. Si al abrirlo con doble clic ves caracteres raros en lugar de tildes, impórtalo desde la pestaña Datos (opción de texto/CSV) y elige la codificación UTF-8.
Cuando las filas no cuadran
Si una fila tiene más o menos valores que el encabezado, el convertidor genera el JSON igualmente y señala el problema con el número de fila de la hoja de cálculo, por ejemplo “Revisa: Fila 3: Too many fields: expected 2 fields but parsed 3” (demasiados campos, se esperaban 2 y se leyeron 3; el detalle del error llega en inglés). La fila 1 es el encabezado. Unas comillas que se abren y nunca se cierran se indican de la misma forma. Corrige la fila en tu archivo y vuelve a pegarlo.
Consejos
- Revisa el JSON con el formateador JSON, que también puede ordenar claves y minificar.
- ¿Necesitas YAML para un archivo de configuración? Convierte a JSON aquí y después usa el convertidor de JSON a YAML.
- Para mostrar los datos en un README, el generador de tablas Markdown acepta el mismo CSV o las celdas copiadas de una hoja de cálculo.
- Desactiva Convertir números y true/false cuando todos los valores deban quedarse como cadenas, por ejemplo antes de importarlos en un sistema que asigna sus propios tipos.
Otras formas de convertir CSV a JSON
- Python: el
DictReaderdel módulo csv integrado lee las filas como diccionarios, yjson.dumplas escribe. - csvkit: el comando
csvjsonconvierte un archivo CSV a JSON en la terminal. - Excel y Google Sheets no exportan a JSON. Guarda primero como CSV y conviértelo aquí.
- jq puede hacer el camino inverso, de JSON a CSV, con su filtro
@csv.
Todo ocurre en tu navegador. Los archivos grandes tardan un poco más, y no se sube nada.