Convertir CSV a JSON

Pasa exportaciones CSV a un array JSON de objetos. Detecta el separador, sigue las reglas de comillas de RFC 4180, admite saltos de línea dentro de celdas y conserva los valores como texto.

El resultado aparecerá aquí.

Cómo funciona Convertir CSV a JSON

Pasa exportaciones CSV a un array JSON de objetos. Detecta el separador, sigue las reglas de comillas de RFC 4180, admite saltos de línea dentro de celdas y conserva los valores como texto.

Entrada CSV
Salida JSON
Trabajos realizados 1.075

Herramientas relacionadas

Guía de uso

Con esta herramienta puedes convertir CSV a JSON: cada fila pasa a ser un objeto cuyas claves salen de la fila de encabezados. El separador se detecta solo, sea coma, punto y coma, tabulación o barra vertical, y las comillas siguen la norma RFC 4180, así que las comas y los saltos de línea entre comillas se leen bien. Los datos no salen de tu navegador.

Cómo convertir CSV a JSON

  1. Abre el CSV con un editor de texto y copia su contenido, o selecciona las celdas en tu hoja de cálculo y cópialas.
  2. Pega el texto en el campo de entrada y comprueba que la primera línea contiene los nombres de las columnas.
  3. Pulsa el botón de ejecutar o Ctrl + Enter para convertir.
  4. Copia el JSON resultante o descárgalo y cambia la extensión del archivo a .json.

El separador y la coma decimal

En los países donde la coma es el separador decimal, las hojas de cálculo suelen guardar el CSV con punto y coma. La herramienta cuenta los separadores de la primera línea que están fuera de comillas y elige el más frecuente, así que este archivo funciona sin tocar nada:

producto;precio;stock
Café molido;4,50;12
"Té verde; 20 bolsitas";3,20;8

El resultado son dos objetos. En el segundo, el nombre del producto conserva su punto y coma porque va entre comillas, y los precios se mantienen como "4,50" y "3,20", con su coma decimal intacta. Si en la primera línea dos separadores aparecen el mismo número de veces, gana la coma; si el resultado no es el esperado, revisa si el encabezado tiene algún signo de más.

Un atajo útil: las celdas copiadas directamente desde una hoja de cálculo llegan separadas por tabulaciones, que también se detectan, así que muchas veces no hace falta exportar el archivo.

Comillas, saltos de línea y espacios

  • Un campo entre comillas puede contener separadores y saltos de línea; todo forma parte del mismo valor, y el salto aparece como \n en el JSON.
  • Una comilla dentro del valor se escribe doble: el campo "Pantalla de 15""" se lee como Pantalla de 15".
  • Los espacios al principio y al final de un campo sin comillas se eliminan; los de un campo entrecomillado se respetan.
  • Las líneas vacías se omiten. Una comilla sin cerrar produce el error Invalid CSV: a quoted field is not closed., casi siempre por una comilla interior que no se duplicó.

Encabezados repetidos, vacíos o de más

La primera fila siempre se toma como encabezado. Si dos columnas se llaman igual, la segunda pasa a ser precio_2, así ninguna sobrescribe a otra. Un encabezado vacío recibe un nombre por posición, como column_4, y lo mismo ocurre con las celdas que sobran en una fila más larga que el encabezado. Las celdas que faltan se rellenan con texto vacío. Si tu archivo no tiene encabezados, añade una primera línea con los nombres antes de convertir.

Por qué todos los valores quedan como texto

La herramienta no adivina tipos: 12 se convierte en "12" y true en "true". Es una decisión deliberada, porque adivinar es la forma más común de estropear datos al convertir un CSV: un código postal como 08001 perdería el cero inicial y 4,50 podría leerse como dos números. Conviertes cada campo en tu código, donde sabes qué significa.

Para qué se usa

  • Cargar en una base de datos o en una API de prueba el catálogo que alguien mantiene en una hoja de cálculo.
  • Pasar a los archivos de idioma de una aplicación las traducciones que el equipo rellena en una tabla.
  • Preparar datos de prueba sin escribir JSON a mano.

Para el camino inverso tienes el conversor de JSON a CSV, aunque el viaje de ida y vuelta no es simétrico: aquel aplana los objetos anidados en columnas como cliente.nombre, y este no reconstruye la anidación, sino que crea una clave plana llamada "cliente.nombre". En CSV vs JSON se comparan ambos formatos.

Privacidad

La conversión se hace con JavaScript en tu navegador: listados de clientes o exportaciones de pedidos no se envían al servidor, y la página solo suma un contador de uso anónimo. Para revisar el resultado, pégalo en el formateador JSON.

Preguntas frecuentes

No hace falta configurar nada. La herramienta cuenta los separadores de la primera línea y usa el más frecuente, por lo que los archivos guardados con punto y coma, habituales en hojas de cálculo con configuración regional en español, se convierten directamente. Si algún valor contiene punto y coma, debe ir entre comillas dobles, como hace cualquier exportación correcta. Las tabulaciones y las barras verticales se detectan igual.

Porque todos los valores se mantienen como texto. Un CSV no indica de qué tipo es cada dato, y adivinarlo provoca errores: códigos postales y teléfonos pierden los ceros iniciales, los identificadores largos se redondean y los decimales con coma se interpretan mal. Convierte en tu código los campos que sabes que son numéricos, por ejemplo con Number() o parseFloat() después de cambiar la coma por un punto.

El problema suele estar en la codificación con la que se guardó el archivo. Algunas hojas de cálculo guardan el CSV en Windows-1252 en lugar de UTF-8, y al abrirlo en un editor que espera UTF-8 la ñ y las vocales con tilde se ven mal. Al exportar, elige la opción CSV UTF-8, o convierte la codificación en tu editor de texto antes de copiar. La herramienta no modifica los caracteres que recibe.

La primera línea siempre se usa como encabezado, así que en un archivo sin él tu primera fila de datos se convertiría en las claves. Añade antes una línea con los nombres de las columnas. Los nombres cortos, en minúsculas y sin espacios ni tildes, como sku, nombre o precio, son los más cómodos después, porque se pueden usar en el código con la notación de punto.