Convertidor de CSV a JSON Online
Pega datos CSV o TSV y conviértelos a un array JSON al instante. Detecta el delimitador automáticamente e infiere tipos. 100% del lado del cliente.
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
- 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.
- 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.
- 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.
- 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.
- 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.
| Delimitador | Origen Típico | Fila de Ejemplo |
|---|---|---|
| Coma (,) | Excel en inglés, Google Sheets, la mayoría de las API | Ana,30,Madrid |
| Punto y coma (;) | Exportaciones de Excel en español, alemán, francés e italiano | Ana;30;Madrid |
| Tabulación | Exportaciones TSV, volcados de bases de datos, copiar y pegar desde hojas de cálculo | Ana 30 Madrid |
| Barra vertical (|) | Exportaciones de sistemas antiguos, algunos formatos de log | Ana|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 CSV | Convertir Números Activado | Convertir Números Desactivado |
|---|---|---|
30 | 30 (número) | "30" (texto) |
007 | 7 (número, cero perdido) | "007" (texto, preservado) |
true | true (booleano) | true (booleano, siempre se convierte) |
| celda vacía | null | null (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
- Revisa el delimitador detectado en archivos cortos. La Detección Automática analiza las primeras cinco líneas, así que un archivo con solo una o dos filas le da muy poco con qué trabajar. Si la salida se ve mal en una muestra pequeña, configura el delimitador manualmente en vez de confiar en la detección automática.
- Decide sobre "Convertir Números" antes de convertir, no después. Una vez que los identificadores, códigos o códigos postales perdieron sus ceros iniciales por la conversión numérica, esa información ya no está en la salida. Revisa tus columnas en busca de campos parecidos a identificadores primero, y deja la opción desmarcada si alguno parece estar en riesgo.
- Presta atención a los nombres de encabezado duplicados. Dos columnas que comparten un encabezado colapsan silenciosamente en una sola clave en cada objeto de salida. Renombra los duplicados antes de pegar los datos, ya que la herramienta no tiene forma de adivinar cuál duplicado querías conservar.
- Recuerda que los campos se recortan. Los espacios en blanco al inicio y al final de cada campo se eliminan durante el parseo, así que un valor como
" Madrid "sale como"Madrid". Esto suele ser lo que quieres, pero significa que datos sensibles a los espacios, como un código que intencionalmente empieza con un espacio, no sobrevivirán la conversión. - Vuelve a exportar desde Excel como UTF-8 si los caracteres se ven corruptos. El mojibake casi siempre se remonta a un desajuste de codificación en el momento de exportar, no a un error al pegar o del parser, y la solución más limpia es una opción distinta de Guardar Como en la hoja de cálculo de origen, no una limpieza manual después.
- Usa la opción de Sangría según tu siguiente paso. Elige 2 o 4 espacios para una salida que planeas leer o subir a control de versiones, o Minificado cuando el JSON va directo a una petición de API o a un script donde el tamaño del archivo importa más que la legibilidad.
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
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.