Convertir CSV a JSON

Convierte CSV o TSV a un array JSON limpio en tu navegador, objetos o arrays, con inferencia de tipos opcional. Nada se sube nunca.

🌐 English

🔒 Privado por diseño: tu texto se procesa localmente en tu navegador; nada se sube nunca a ningún servidor.

Cómo convertir CSV a JSON

  1. Pega tu CSV (o TSV) en el recuadro de arriba, una exportación de hoja de cálculo, la respuesta CSV de una API o cualquier dato separado por comas, punto y coma o tabuladores.
  2. Deja marcado La primera fila contiene los nombres de las columnas si tu primera línea nombra las columnas, o desmárcalo si todas las filas son datos.
  3. Elige la Forma de salida (un array de objetos con clave por la cabecera, o un array de arrays) y decide si Inferir tipos (números, true/false, null) o dejar todo como texto.
  4. Pulsa Convertir CSV a JSON, y luego Copy to clipboard para copiar el resultado o pega algo nuevo y vuelve a ejecutarlo.

Por qué convertir CSV a JSON

El CSV es como viajan los datos tabulares (exportaciones de hojas de cálculo, volcados de bases de datos, resultados de encuestas, descargas de analítica) pero el JSON es lo que consume el código. Casi todas las API REST, archivos de configuración y aplicaciones JavaScript esperan un array de objetos, no un archivo separado por comas, así que pasar de uno a otro es una tarea constante para quien programa: crear datos de prueba a partir de una hoja de cálculo, transformar un informe exportado en un cuerpo de petición, o simplemente ver cómo lucen las filas de un CSV como datos estructurados antes de escribir código.

Hacerlo a mano es tedioso y fácil de equivocar, las reglas de entrecomillado, una coma perdida dentro de un campo, una fila de cabecera que no es del todo una cabecera. Esta herramienta lee la estructura de tu CSV y produce un array JSON limpio en un solo pegado: cada fila con clave por su columna, con los números como números reales y el texto como texto.

Números que siguen siendo números, e identificadores que siguen siendo texto

Lo más delicado de cualquier conversión de CSV a JSON es decidir qué valores convertir. Desactívalo y cada celda sigue siendo texto, tal como está escrita. Actívalo y los números simples pasan a números JSON, true/false a booleanos y las celdas vacías a null, pero un valor con cero a la izquierda, como el código postal 00501, la extensión 007 o un identificador 0123, se mantiene como texto a propósito. Escribirlos como los números 501, 7 o 123 tiraría en silencio los ceros a la izquierda, uno de los errores de importación más comunes y difíciles de detectar. Los enteros muy grandes que JavaScript no puede representar con exactitud también se conservan como texto, para que nada se redondee a un valor distinto.

Tus datos nunca salen de tu dispositivo

Las exportaciones CSV son justo el tipo de archivo con el que conviene tener cuidado, listas de clientes, precios, identificadores internos, a veces datos mucho más sensibles escondidos en una exportación rutinaria. Este conversor analiza tu CSV y construye el JSON íntegramente dentro de la pestaña de tu navegador con la librería de código abierto PapaParse. No hay subida, ni procesamiento en el servidor, ni copia alguna de tus datos más allá de tu propio dispositivo, y sigue funcionando sin conexión una vez cargada la página.

Usos habituales

Cómo funciona, en imágenes

Captura de pantalla de la herramienta Convertir CSV a JSON con la entrada de ejemplo «slug,category,free png-to-jpg,image,true compres…», First row contains column headers en on, Output shape en Array of objects (keyed by header)
Convertir CSV a JSON en pleno proceso: la entrada de ejemplo «slug,category,free png-to-jpg,image,true compres…», First row contains column headers en on, Output shape en Array of objects (keyed by header).
Captura de pantalla del resultado de Convertir CSV a JSON mostrando la salida generada «[ { "slug": "png-to-jpg", "category": "image", "…»
El resultado final: la salida generada «[ { "slug": "png-to-jpg", "category": "image", "…». El enlace de descarga es una URL blob local: el archivo nunca sale de tu dispositivo.

Preguntas frecuentes

¿Se sube mi CSV a un servidor para convertirlo?

No. Tu CSV se analiza y se convierte a JSON completamente dentro de la pestaña de tu navegador con la librería de código abierto PapaParse, y el resultado aparece en el recuadro de abajo para copiarlo o guardarlo. Las exportaciones CSV suelen contener datos reales de clientes, precios o registros internos, así que nada (ni su contenido ni siquiera el hecho de que lo hayas convertido) llega nunca a un servidor, y funciona igual sin conexión una vez cargada la página.

¿Puedo convertir un ARCHIVO CSV, no solo texto pegado?

Sí. Abre el archivo en cualquier editor de texto u hoja de cálculo, copia su contenido y pégalo en el recuadro. Como todo se ejecuta en tu navegador y el CSV es texto plano, pegar funciona con cualquier archivo CSV o TSV sin ningún paso de subida. Así la herramienta es un complemento rápido de pegar-y-leer para el Formateador de JSON, ideal para las comprobaciones de "qué aspecto tienen estos datos en JSON".

¿Cómo decide la inferencia qué es un número, un booleano o null?

Con "Inferir tipos" activado, una celda se convierte en número JSON solo si todo su valor es un entero o decimal sin cero a la izquierda (como 42 o 3.14); un valor como "00501" (un código postal) o "007" se mantiene como texto, porque convertirlo en el número 501 o 7 destruiría en silencio los ceros a la izquierda, el error de importación de CSV más habitual. Los valores true/false (en cualquier mayúscula/minúscula) pasan a booleanos, una celda vacía o la palabra null pasan a null, y todo lo demás sigue siendo texto. Un número entero demasiado grande para representarse con exactitud en JavaScript también se conserva como texto para que no se redondee sin querer. Desactiva la opción para dejar cada valor como texto tal cual aparece.

¿Qué diferencia hay entre "array de objetos" y "array de arrays"?

El array de objetos es lo que casi todo el mundo entiende por convertir CSV a JSON, cada fila de datos se convierte en un objeto con clave por el nombre de la columna, como [{ "nombre": "Ada", "edad": 36 }]. El array de arrays da cada fila como una lista posicional, como [["Ada", 36]], útil cuando no te importan los nombres de columna o quieres la cuadrícula en bruto. Ambas formas describen el mismo conjunto de filas; la única diferencia es objetos con clave frente a arrays posicionales.

¿Y si mi primera fila no es una cabecera?

Desmarca "La primera fila contiene los nombres de las columnas" y todas las filas (incluida la primera) se tratan como datos. En modo array de objetos las columnas se nombran de forma genérica como column_1, column_2, etc.; en modo array de arrays simplemente obtienes cada fila como una lista. Si dos columnas de cabecera tienen el mismo nombre, los duplicados reciben un sufijo automático (id, id_2, id_3) para que ninguna columna sobrescriba a otra.

¿El resultado sale realmente en español?

La conversión en sí es totalmente independiente del idioma, tu texto en español, incluidas tildes y la ñ, se conserva tal cual en el JSON, y palabras clave como true, false y null son convenciones universales de JSON, no términos que haya que traducir. Lo único que se muestra en inglés es la interfaz compartida de la herramienta (los botones "Copy to clipboard" y "Process another") y los nombres de columna generados automáticamente cuando no hay cabecera (column_1, column_2); son una convención genérica de claves, no una traducción de tus datos.

Herramientas relacionadas