TextSorter
Entrada CSV
Salida JSON

Cómo Convertir CSV a JSON Online

CSV es el formato que las hojas de cálculo, las bases de datos y los CRM exportan por defecto porque es solo texto: una fila de encabezado y luego una línea por registro, con comas marcando dónde termina una columna y empieza la siguiente. JSON es lo que las aplicaciones web modernas, las API REST y el propio JavaScript realmente quieren consumir: un array de objetos, cada uno con sus propiedades nombradas según el campo. Este convertidor conecta ambos formatos directamente en tu navegador, transformando las filas de una exportación CSV o TSV en un array JSON limpio y estructurado en el tiempo que toma hacer clic en un botón.

La brecha entre estos dos formatos aparece constantemente en el trabajo diario. Un desarrollador backend recibe una hoja de cálculo con usuarios de prueba del equipo de QA y necesita convertirla en un fixture JSON para una prueba de integración. Un desarrollador frontend recibe un catálogo de productos exportado desde un sistema de inventario y necesita un array de objetos para mostrar como tarjetas. Un analista de datos extrae un informe de un CRM y necesita alimentarlo a un script que solo lee JSON. Ninguna de estas personas quiere escribir un parser desde cero, y ninguna quiere instalar una herramienta de línea de comandos para una conversión puntual que toma diez segundos aquí.

Convertir CSV a JSON Paso a Paso

  1. Pega tu CSV. Coloca tus filas en el cuadro "Entrada CSV", ya sea que vengan de un copiar y pegar desde Excel, Google Sheets, una exportación de base de datos, o un archivo TSV donde las tabulaciones separan las columnas en vez de comas.
  2. Configura el delimitador. Deja "Detección Automática" activada para la mayoría de los archivos, o elige directamente Coma, Tabulación, Punto y Coma o Barra Vertical si ya sabes qué carácter usa tu exportación.
  3. Elige tus opciones de encabezado y tipo. Mantén marcada "Primera Fila como Encabezados" para usar tu fila de encabezado como claves JSON, y activa o desactiva "Convertir Números" según si los campos que parecen numéricos, como edades o precios, deben convertirse en números JSON reales o quedarse como texto.
  4. Haz clic en "Convertir a JSON." El parser construye el array en bastante menos de un segundo, con la sangría que elegiste, y lo coloca en el cuadro "Salida JSON" de abajo.
  5. Copia o descarga el resultado. Cópialo con un clic en "Copiar", o usa "Descargar .json" para guardarlo como un archivo que puedes entregar, adjuntar o importar directamente a otra herramienta.

Cada paso ocurre en tu propio dispositivo. No hay subida a ningún servidor, no hay cola de espera y no hay límite artificial de filas, porque el JavaScript que corre en tu pestaña hace todo el trabajo.

Por Qué Importa el Delimitador: Comas, Punto y Coma, Tabulaciones y Barras Verticales

"CSV" es en realidad una familia de formatos y no un estándar único y estricto, y el carácter que separa tus columnas no siempre es una coma, sin importar lo que diga la extensión del archivo. Esta herramienta incluye un paso de Detección Automática justamente por eso: analiza las primeras cinco líneas de tu texto pegado, cuenta cuántas veces aparece cada delimitador candidato (tabulación, coma, punto y coma y barra vertical) fuera de las secciones entre comillas, y elige el carácter que aparece de forma más consistente en esas líneas, no simplemente el que aparece más veces en total. Un archivo donde cada línea tiene exactamente tres punto y coma y ninguna coma es una señal clara, incluso si un punto y coma se cuela también dentro de un campo de notas entre comillas en algún lugar.

La sorpresa más común para quienes trabajan en español es el punto y coma. Excel en Windows vincula su delimitador de CSV por defecto a la configuración regional de tu sistema, y en España y en la gran mayoría de países de América Latina, la coma ya está reservada como separador decimal para los números, así que un precio se escribe como 12,50 en lugar de 12.50. Si Excel usara también la coma como separador de campos, una sola columna de precios se dividiría en dos columnas cada vez que exportaras el archivo. Para evitar esa colisión, Excel configurado en español exporta los archivos CSV usando punto y coma como delimitador en su lugar, aunque el archivo siga terminando en .csv. Una fila que se ve como Nombre;Ciudad;Salario con un valor de 4500,75 es una exportación completamente normal de una hoja de cálculo configurada en español, no un archivo roto. Este es uno de los motivos por los que tantas búsquedas de "excel a json" terminan con desarrolladores confundidos por un archivo CSV que, al abrirlo en un editor de texto, parece tener todo pegado en una sola columna.

DelimitadorOrigen TípicoFila de Ejemplo
Coma (,)Excel en inglés, Google Sheets, la mayoría de las APIAna,30,Madrid
Punto y coma (;)Exportaciones de Excel en español, alemán, francés e italianoAna;30;Madrid
TabulaciónExportaciones TSV, volcados de bases de datos, copiar y pegar desde hojas de cálculoAna   30   Madrid
Barra vertical (|)Exportaciones de sistemas antiguos, algunos formatos de logAna|30|Madrid

Si la Detección Automática alguna vez se equivoca, casi siempre en un archivo muy corto con solo una o dos filas para analizar, simplemente elige el delimitador correcto en el menú desplegable tú mismo. El resto de la lógica de parseo (campos entre comillas, comillas escapadas e inferencia de tipos) funciona exactamente igual sin importar qué delimitador esté activo.

Campos Entre Comillas, Comas Incrustadas y Saltos de Línea

Un parser de CSV ingenuo simplemente divide cada línea por el carácter delimitador, y eso se rompe en el instante en que un campo contiene ese mismo carácter. Los datos CSV del mundo real están llenos de justamente eso: una columna de "Apellido, Nombre", una dirección con una coma antes de la ciudad, una descripción de producto con una lista de características separadas por comas. La solución, estandarizada hace décadas en lo que hoy se conoce como RFC 4180, es envolver entre comillas dobles cualquier campo que contenga el delimitador, y este convertidor implementa esa regla como una máquina de estados que lee carácter por carácter, en lugar de un simple split().

En concreto, una fila como "Pérez, Ana",42,"Bogotá, Colombia" se convierte correctamente en un campo de nombre "Pérez, Ana" y un campo de ciudad "Bogotá, Colombia", cada uno quedando como un solo valor en vez de dividirse en columnas de más. El parser lleva un indicador inQuotes mientras lee carácter por carácter, y solo trata una coma como separador de campo cuando ese indicador está desactivado.

Comillas escapadas y campos con varias líneas

Dos casos límite relacionados aparecen constantemente en exportaciones reales. Primero, una comilla doble literal dentro de un campo entre comillas se escribe como dos comillas dobles seguidas, así que "Ella dijo ""hola"" y se fue" se decodifica como un solo campo que dice Ella dijo "hola" y se fue, con las comillas dobles colapsadas de vuelta a una. Segundo, un campo entre comillas puede contener un salto de línea real, algo que pasa cada vez que una columna de una hoja de cálculo guarda una dirección de varias líneas, una nota o un comentario. El parser no deja de leer un campo en el primer salto de línea que encuentra; sigue consumiendo texto, saltos de línea incluidos, hasta que llega a la comilla de cierre, así que la dirección de un cliente exportada en dos líneas físicas termina en el JSON como un único valor de tipo string con un \n incrustado, en lugar de partirse a la mitad o filtrarse hacia la fila siguiente.

Equivocarse en esto es exactamente lo que rompe las conversiones de hoja de cálculo a JSON hechas con una expresión regular rápida o un simple split(','). Este parser existe precisamente para que esos casos no tengan que resolverse a mano.

Filas de Encabezado y Nombres de Columna Duplicados

Con "Primera Fila como Encabezados" marcada, la primera línea de tus datos pegados define el nombre de clave para cada campo en cada objeto que sigue, así que un encabezado de nombre,email,edad significa que cada objeto de salida tiene exactamente esas tres claves, en ese orden. Desmarca la opción para datos CSV que no tienen fila de encabezado, quizás un volcado de base de datos en crudo o un archivo de log, y la herramienta recurre a claves genéricas en su lugar: col1, col2, col3 y así sucesivamente, numeradas según la posición de la columna, para que nada se pierda silenciosamente.

Los nombres de encabezado duplicados merecen atención especial porque el fallo es silencioso, no un mensaje de error. Un objeto JSON solo puede tener una propiedad por clave, así que un encabezado como nombre,telefono,telefono, quizás una hoja de cálculo con columnas separadas de "teléfono de oficina" y "teléfono móvil" ambas etiquetadas simplemente como "teléfono", produce un objeto donde el segundo valor de teléfono sobrescribe al primero durante la conversión. El JSON resultante es perfectamente válido, solo que contiene silenciosamente un número de teléfono en vez de dos, sin ninguna advertencia de que se perdió información. La solución está enteramente del lado de la entrada: renombra las columnas duplicadas antes de pegar los datos, por ejemplo a telefono_oficina y telefono_movil, para que cada clave de la fila de encabezado sea única antes de que empiece la conversión.

Inferencia de Tipos: Números, Booleanos y el Problema del "007"

CSV no tiene ningún concepto de tipos de datos. Cada celda, ya sea que contenga un nombre, una edad, un precio o un valor de casilla de verificación, se guarda como texto plano, y es la casilla "Convertir Números" la que decide cuánto de ese texto se promueve a un tipo JSON real en vez de quedarse como string. Con la opción marcada, cualquier campo que pase una prueba numérica se convierte con el Number() de JavaScript, así que "edad": "30" en el CSV se convierte en "edad": 30 en el JSON, listo para operaciones matemáticas o de comparación sin un paso extra de parseo en tu propio código.

Esa comodidad tiene un costo real para valores que solo parecen numéricos. Un código de producto como "007", un número de cuenta como "0042", o un código postal español como "08015" (uno típico de Barcelona) pasan todos la prueba numérica y se convierten en 7, 42 y 8015 respectivamente, perdiendo en cada caso el cero inicial que los hacía reconocibles. Un código postal es un identificador, no una cantidad, y una vez que se convierte en el número 8015 no hay forma de distinguirlo de un código postal distinto al que simplemente le falta un dígito. Si tus datos mezclan identificadores, códigos o códigos postales con campos genuinamente numéricos, desmarca "Convertir Números" antes de convertir y mantén todo como texto, o convierte dos veces y corrige manualmente solo los campos de identificador en la salida.

Valor CSVConvertir Números ActivadoConvertir Números Desactivado
3030 (número)"30" (texto)
0077 (número, cero perdido)"007" (texto, preservado)
truetrue (booleano)true (booleano, siempre se convierte)
celda vacíanullnull (siempre se convierte)

Dos de esas filas son fáciles de pasar por alto: la conversión de booleanos y el manejo de celdas vacías ocurren de forma incondicional, sin importar el estado de la casilla "Convertir Números". Una celda que contiene el texto true o false, sin importar mayúsculas o minúsculas, siempre se convierte en un booleano JSON real, y una celda genuinamente vacía siempre se convierte en null en vez de un string vacío "". Eso importa si el código que lee la salida verifica un campo con === null específicamente, o espera que todos los valores de una misma clave compartan el mismo tipo de JavaScript; una columna que a veces está vacía producirá una mezcla de strings y valores null en el array, en vez de una columna de strings vacíos de principio a fin.

UTF-8 vs. Windows-1252: Arreglar Caracteres Corruptos de Excel

Los errores de codificación de texto están entre los más confusos de diagnosticar porque el archivo se ve perfectamente bien en el programa que lo creó y solo se rompe más adelante, en otro paso. El caso clásico: un campo de nombre que contiene "José" o "años" se exporta desde Excel, se pega en este convertidor o en cualquier otra herramienta que espere UTF-8, y sale como José o años en vez del texto correcto. Ese amasijo de caracteres tiene nombre, se llama mojibake, y una causa concreta: el archivo se guardó usando una página de códigos de 8 bits de Windows, casi siempre Windows-1252, donde "é" o "ñ" ocupan un solo byte, pero luego algo lo lee esperando UTF-8, donde el mismo carácter ocupa dos bytes, y cada uno de esos dos bytes se interpreta por separado como si fuera su propio carácter.

La solución está en el cuadro de diálogo Guardar Como de Excel, no en esta herramienta, porque para cuando el texto corrupto ya se pegó aquí, los bytes originales ya se perdieron. En Windows, elegir la opción simple "CSV (delimitado por comas)" en la lista de tipos de archivo todavía usa por defecto la página de códigos regional del sistema en muchas instalaciones, mientras que "CSV UTF-8 (delimitado por comas)" escribe el archivo explícitamente en codificación UTF-8, que es justo lo que esperan los navegadores y este convertidor. Si recibes con frecuencia archivos CSV con acentos o eñes corruptas de parte de un colega, pedirle que vuelva a exportar usando la opción UTF-8, o abrir el archivo en un editor de texto plano y volver a guardarlo con la codificación UTF-8 seleccionada explícitamente, arregla el problema desde la raíz en vez de tener que corregirlo después a mano.

Marcas de orden de bytes y filas vacías al final

Vale la pena conocer dos detalles menores de codificación. Excel suele anteponer una marca de orden de bytes, una firma UTF-8 invisible que a veces se ve como  si se lee mal, al inicio mismo de un archivo CSV en UTF-8, pensada para ayudar a otros programas a detectar la codificación automáticamente, pero que ocasionalmente aparece pegada al primer nombre de encabezado si una herramienta no la elimina. Por separado, las exportaciones de hojas de cálculo suelen terminar con una línea en blanco después de la última fila real de datos. Este convertidor filtra cualquier fila donde todas las celdas estén vacías antes de construir el array JSON, así que un salto de línea al final de tu archivo no produce un objeto vacío de más al final de tu salida.

Por Qué Este Convertidor Funciona Completamente en Tu Navegador

Muchas herramientas de "convertir csv a json online" suben en silencio lo que pegas a un servidor, lo procesan ahí y te devuelven un resultado. Ese viaje de ida y vuelta es invisible en el uso normal, pero significa que tus datos estuvieron, aunque sea brevemente, en una máquina que no controlas. Para un conjunto de datos de ejemplo público, eso no importa. Para una nómina, una lista de clientes, una lista de precios de proveedores, o cualquier cosa cubierta por un acuerdo de confidencialidad, es un riesgo real que la mayoría de las personas nunca piensa en verificar.

Este convertidor nunca hace ese viaje. La lógica de parseo es JavaScript plano que viene con la página, y corre enteramente dentro de tu propia pestaña del navegador en el momento en que haces clic en Convertir. Abre la pestaña de red de tu navegador mientras lo usas y no verás ni una sola petición llevándose tus datos CSV a ningún lado. Eso tiene un efecto práctico más allá de la privacidad: no hay límite de velocidad del lado del servidor, no hay tope de tamaño de archivo impuesto por una API, y no hay cola de espera, porque tu propio dispositivo hace todo el trabajo en vez de un backend compartido.

Lo que esto significa para exportaciones confidenciales

Si estás convirtiendo registros de empleados, datos financieros, información de producto sin lanzar, nóminas o cualquier otra cosa que no debería salir de tu organización, una herramienta puramente del lado del cliente elimina ese riesgo de la ecuación por completo, en vez de pedirte que confíes en una política de privacidad que no has leído. Es el mismo razonamiento que lleva a los desarrolladores a correr un formateador de código de forma local en vez de pegar código fuente propietario en un formulario web al azar: la herramienta más segura es la que nunca tuvo oportunidad de filtrar nada, porque nunca salió de tu equipo.

Usos Comunes de Este Convertidor de CSV a JSON

El mismo paso de conversión aparece en trabajos muy distintos. Algunos patrones se repiten constantemente.

Prototipado de frontend sin backend

Los desarrolladores frontend que construyen un componente, una tabla o un mockup de dashboard a menudo necesitan datos de ejemplo realistas antes de que exista una API real. Exportar una hoja de cálculo con filas de ejemplo y convertirla aquí produce un array JSON listo para usar que se puede colocar directamente en un archivo de datos simulados o un fixture local.

Alimentar una base de datos de documentos o NoSQL

Bases de datos como MongoDB guardan documentos como objetos parecidos a JSON, no como tablas, así que un conjunto de datos que empezó como una exportación de hoja de cálculo a menudo necesita convertirse en un array JSON antes de poder importarse con una herramienta como mongoimport. Convertir la exportación aquí suele ser la forma más rápida de pasar de una hoja de cálculo a un archivo importable.

Pruebas de API y payloads simulados

Los ingenieros de QA y los desarrolladores backend que construyen casos de prueba en herramientas como Postman o Insomnia frecuentemente parten de una hoja de cálculo con ejemplos de entrada, una fila por caso de prueba, y necesitan esos mismos datos como un array JSON de cuerpos de petición. Convertir una vez aquí mantiene la hoja de cálculo como fuente de verdad mientras produce exactamente la forma de JSON que espera un test runner.

Migración de datos y scripts puntuales

Migrar datos entre sistemas, por ejemplo una exportación de un CRM antiguo hacia el formato de importación de una plataforma nueva, o el volcado de una base de datos heredada hacia una aplicación moderna, frecuentemente implica un script que lee JSON. Convertir la exportación en crudo aquí primero elimina la necesidad de escribir un paso de parseo de CSV dentro de ese script.

Configuración y contenido desde hojas de cálculo

Los compañeros de equipo no técnicos suelen sentirse mucho más cómodos manteniendo una lista en Google Sheets que editando un archivo JSON directamente, ya sea una lista de preguntas frecuentes, categorías de producto o feature flags. Convertir su hoja de cálculo aquí en cada actualización mantiene el archivo JSON sincronizado con lo último que editaron, sin que tengan que tocar un editor de texto.

Consejos para Conversiones Limpias y Errores Comunes

La mayoría de las sorpresas al convertir se reducen a una de cinco cosas: el delimitador incorrecto, una conversión numérica no deseada, un encabezado duplicado, un desajuste de codificación, o espacios en blanco recortados. Ninguna de ellas es un error del parser, son propiedades de los datos de origen que vale la pena revisar rápidamente antes de hacer clic en Convertir.

Preguntas Frecuentes

¿Cómo convierto un CSV a JSON?
Pega tu CSV o TSV en el cuadro de entrada y haz clic en "Convertir a JSON." El parser lee fila por fila, usa la primera fila como claves de objeto por defecto, y construye un array JSON donde cada fila restante se convierte en un objeto. Copia el resultado o descárgalo como archivo .json, todo sin salir de la página.
¿Esta herramienta admite archivos TSV (valores separados por tabulaciones)?
Sí. Selecciona "Tabulación (TSV)" en el menú de Delimitador, o déjalo en Detección Automática y la herramienta reconocerá los caracteres de tabulación por su cuenta. TSV es común en exportaciones de hojas de cálculo y bases de datos donde el propio texto probablemente contenga comas.
¿Por qué mi archivo CSV de Excel usa punto y coma en vez de comas?
Excel vincula su delimitador de CSV por defecto a la configuración regional de Windows, y en España y en la mayoría de los países de América Latina, la coma ya está reservada como separador decimal para números como 12,50. Para evitar que un separador de campo choque con un punto decimal, Excel configurado en español exporta archivos CSV usando punto y coma como delimitador. La Detección Automática maneja esto sin que hagas nada, o puedes elegir directamente "Punto y Coma (;)".
¿Cómo se manejan los campos entre comillas con comas o saltos de línea dentro?
El parser es una verdadera máquina de estados, no una simple división por comas, así que lleva registro de si está dentro de un campo entre comillas. Una celda escrita como "Pérez, Ana" conserva su coma interna y queda como un solo campo, y un campo entre comillas que contiene un salto de línea real, como una dirección de varias líneas, se lee como un único valor que abarca varias líneas de texto crudo en vez de cortarse en el primer salto de línea.
¿Qué pasa con un valor como "007" o un código postal con un cero inicial?
Depende de la casilla "Convertir Números". Con ella marcada, cualquier campo que parezca numérico se convierte en un número JSON real, así que "007" se convierte en 7 y un código postal como "08015" se convierte en 8015, perdiendo el cero inicial igual que lo haría una hoja de cálculo. Desmarca "Convertir Números" antes de convertir si tus datos tienen identificadores, códigos o códigos postales que necesitan quedarse intactos como texto.
¿El convertidor trata las celdas vacías como null o como un string vacío?
Las celdas vacías siempre se convierten en null de JSON, sin importar si "Convertir Números" está marcada, porque esa conversión ocurre de forma incondicional en el paso de parseo. Una fila como "Ana,,Ingeniera" produce un campo del medio con valor null en vez de un string vacío "", lo cual importa si el código que lee la salida verifica null específicamente o espera un tipo string en cada clave.
¿Por qué aparecen caracteres acentuados como José o años como texto corrupto?
Ese texto corrupto, conocido como mojibake, ocurre cuando un archivo se guardó en una codificación de 8 bits de Windows como Windows-1252 pero tu navegador u otra herramienta lo lee esperando UTF-8, o al revés. Un síntoma común es que "José" se convierta en "José" o "años" en "años". La solución es exportar desde Excel usando "CSV UTF-8 (delimitado por comas)" en el cuadro Guardar Como, en vez de la opción simple "CSV", que en muchas instalaciones sigue usando Windows-1252 por defecto.
¿Qué pasa si mi CSV tiene nombres de columna duplicados en la fila de encabezado?
Los objetos JSON no pueden tener dos propiedades con la misma clave, así que si tu fila de encabezado tiene dos columnas llamadas "Teléfono", la segunda sobrescribe silenciosamente a la primera en cada objeto de salida, y se pierde el primer número de teléfono. Renombra los encabezados duplicados, por ejemplo a "Telefono1" y "Telefono2", antes de pegar tus datos para evitar perder una columna entera de información sin ningún mensaje de error.
¿Hay un límite de qué tan grande puede ser el archivo CSV que convierto?
No hay un límite artificial de tamaño de archivo impuesto por esta herramienta, ya que la conversión corre localmente en vez de pasar por una API de servidor con un límite de tamaño de petición. En la práctica, hojas de cálculo con decenas de miles de filas se convierten en bastante menos de un segundo en una laptop normal, y el límite real es cuánta memoria tiene disponible la pestaña de tu navegador para archivos muy grandes.
¿Mis datos CSV son privados, o se sube algo a un servidor?
Nada se sube a ningún lado. El parseo corre como JavaScript dentro de tu propia pestaña del navegador, así que las nóminas, listas de clientes y otros datos de hoja de cálculo cubiertos por acuerdos de confidencialidad nunca salen de tu dispositivo. Puedes desconectarte de internet después de que la página cargue y el convertidor sigue funcionando exactamente igual.

Herramientas de desarrollo relacionadas

🔒 Privacidad 100% del Lado del Cliente

Todo el parseo de CSV y la generación de JSON ocurre <strong>enteramente en tu navegador</strong>. Ningún dato se sube nunca a ningún servidor. Tus datos permanecen en tu dispositivo en todo momento.