Creado sobre IA avanzada en tu dispositivo y aceleración por hardware para ofrecer un rendimiento profesional con privacidad absoluta.IA en tu dispositivo: profesional y privado.
CSV a JSON
Convierte CSV a JSON en tu dispositivo: objetos, JSON Lines, valores tipados, claves anidadas.
- Sin subida
- 5 formas de salida
- Números y booleanos reales
- Hasta 25 MB gratis
Suelta aquí un archivo CSV
.csv .tsv .txt .psv · hasta 25.0 MB gratis
Qué es el nivel superior del documento. Cada una es un archivo distinto, no otra disposición.
Dos espacios se leen bien en una comparación; minificado es lo más pequeño.
Los ceros iniciales, los identificadores largos, los teléfonos, Infinity y NaN se dejan siempre como texto.
En qué se convierte una celda vacía.
El modo automático lee el archivo: solo votan los valores que declaran su propia convención.
Las cabeceras duplicadas se renombran y las vacías se numeran, así no se pierde ninguna columna.
Detectado del archivo. Cambia cualquiera si la vista previa se ve mal.
Un lote se descarga como un solo ZIP. Combinar fusiona todos los archivos en un documento.
Gratis: 1 archivo a la vez, hasta 25.0 MB. Todas las formas de salida y opciones incluidas.
Cómo convertir CSV a JSON
- 1
Añade tu CSV
Suelta o busca un archivo .csv, .tsv, .txt o .psv. El delimitador, el carácter de comillas y la codificación se detectan del archivo y se muestran para que puedas cambiarlos.
- 2
Elige la forma de salida
Array de objetos para una API, JSON Lines para una importación en base de datos, hash indexado para búsquedas, arrays por columna para un dataframe, o array de arrays para datos matriciales.
- 3
Decide cómo se leen los valores
Activa la inferencia de tipos para obtener números, booleanos y null reales en vez de cadenas, y elige si una celda vacía se convierte en null, en cadena vacía o se omite.
- 4
Convierte y exporta
Pulsa Convertir y copia todo el documento al portapapeles o descárgalo. Nada sale de tu dispositivo.
Qué te ofrece este flujo CSV → JSON
Pensado para llevar hojas de cálculo a una API: controla cómo se dividen las filas, cómo se decodifican los bytes, en qué se convierte cada valor y cómo las cabeceras se vuelven claves; después copia el JSON o descarga el archivo sin salir de tu máquina.
- Cinco formas de salida, no una — Array de objetos para una API, JSON Lines para una importación en base de datos, hash indexado para búsquedas, arrays por columna para un dataframe, o array de arrays para datos matriciales.
- Valores reales, no cadenas — Números, booleanos y null salen como valores JSON en lugar de texto entrecomillado, protegiendo los casos en los que eso perdería información.
- Delimitador y comillas ajustables — Detecta desde el archivo o fuerza coma, punto y coma, tabulador o barra, con comillas dobles, simples o ninguna para exportaciones que rompen las reglas habituales.
- Codificación que arregla el texto corrupto — Las marcas de orden de bytes prevalecen sobre tu elección, las exportaciones UTF-16 se leen bien e ISO-8859-1 es un decodificador Latin-1 real, no un alias.
- Objetos, matrices o registros anidados — Activa primera fila como claves para filas { "columna": "valor" }, mantén un array 2D si ya normalizas en código, o pliega cabeceras con puntos en objetos anidados.
- Copiar, descargar, repetir — El JSON formateado está listo para Postman, jq o para subirlo a un repositorio; regenéralo al instante tras cada ajuste.
- Ejecución con la privacidad primero — La vista previa aparece en cuanto se lee el archivo: sin cola, sin subida, sin esperas.
Cómo elegir la forma de salida
La forma decide qué es el nivel superior del documento, y la correcta depende por completo de qué lo va a leer. Cada una es un archivo distinto, no otro formato del mismo archivo.
- Array de objetos — [{ "id": 1, "name": "Ada" }]: el valor por defecto y lo que espera una API HTTP, una aplicación JavaScript o una estructura tipada.
- Array de arrays — [["id","name"],[1,"Ada"]]: cada celda por posición, sin consumir la fila de cabecera. Adecuado para datos matriciales o para archivos con cabeceras duplicadas o ausentes.
- JSON Lines (NDJSON) — Un registro completo por línea, sin corchetes envolventes ni comas entre registros. Es lo que aceptan mongoimport, BigQuery y la mayoría de pipelines de logs, y nunca se formatea con sangría: un registro repartido en varias líneas rompe el formato.
- Hash indexado — { "SKU-1": { … } }: un índice, con la clave de la columna que elijas. Adecuado cuando el consumidor busca registros por identificador en vez de recorrerlos. Dos filas con la misma clave no pueden sobrevivir ambas, así que la herramienta informa de cuántas se descartaron.
- Arrays por columna — { "id": [1,2], "name": ["Ada","Grace"] }: orientado a columnas, que es lo que quieren pandas, Arrow y la mayoría de librerías de gráficos, y mucho más pequeño que los objetos por fila cuando hay muchas columnas.
Cómo se convierten los valores en tipos JSON
Con la inferencia de tipos activa, cada celda se lee como el valor JSON que realmente es en lugar de entrecomillarse como texto. Lo interesante no es lo que se convierte, sino lo que deliberadamente no: cada uno de estos casos es un valor que un conversor ingenuo daña en silencio.
Qué se convierte
- Números — Enteros, decimales y exponentes, eliminando los separadores de millares y entendiendo tanto la convención 1,234.56 como 1.234,56. Los paréntesis contables se leen como negativos, así que (1.234,50) se convierte en -1234,5.
- Booleanos — true, false, TRUE, FALSE, True y False se convierten en booleanos JSON reales. TRUE y FALSE es lo que escribe una hoja de cálculo; las formas en minúscula son lo que escribe todo lo demás.
- Null — Una celda vacía se convierte en null por defecto, y el texto literal null o NULL —lo que escribe una exportación de base de datos— también se convierte en null.
- JSON incrustado, si lo pides — Una celda que es en sí misma un array u objeto JSON puede analizarse en vez de entrecomillarse, que es lo que hace usable una exportación de Airtable o Notion. Está desactivado por defecto, porque un campo de dirección con una llave no es una estructura de datos.
Qué se deja deliberadamente como texto
- Ceros iniciales — 007 y 00123 siguen siendo cadenas. Convertirlos en 7 y 123 no se puede deshacer, y un código de pieza o un código postal no es una cantidad.
- Identificadores largos — Un número de tarjeta, IMEI o identificador con más de quince dígitos significativos sigue siendo cadena. Como número JSON, 12345678901234567890 se convierte en 12345678901234567000, en silencio y sin error.
- Signo más inicial — +34600123456 es un teléfono, no un entero positivo, y quitar el más cambia lo que significa.
- Infinity y NaN — Ninguno es JSON válido. Un conversor que los deja pasar no produce un archivo roto: produce un archivo válido en el que esas celdas se han convertido silenciosamente en null.
- Fechas — JSON no tiene tipo fecha, así que 2024-01-15 sigue siendo exactamente la cadena que contenía el archivo. Cualquier otra cosa sería una suposición sobre un formato que el archivo nunca declaró.
- Moneda y porcentajes — 50 € y 12 % conservan sus símbolos. Quitarlos cambia el significado del valor y en JSON no hay dónde registrar que un número era un porcentaje.
Filas de cabecera, claves y colisiones
La fila de cabecera es donde un conversor pierde datos más fácilmente sin avisar, porque cualquier fallo aquí sigue produciendo un documento bien formado, solo que con una columna menos. Estos casos se gestionan en vez de ignorarse, y cada uno se informa junto al archivo.
- Cabeceras duplicadas — Un archivo con dos columnas llamadas id escribiría la segunda sobre la primera. La posterior se renombra id_2 y la herramienta indica cuántas se renombraron.
- Cabeceras vacías — Una celda de cabecera vacía se convierte en column_4, numerada por su posición en el archivo para que quede claro de qué columna se trata.
- Cabeceras más cortas que los datos — Si el cuerpo es más ancho que la cabecera, las columnas extra se nombran en vez de descartarse: perder valores porque la fila de cabecera era corta no se ve en la salida.
- Mayúsculas de las claves — Deja los nombres exactamente como los escribió el archivo, o conviértelos a minúsculas, mayúsculas, camelCase o snake_case. Renombrar es opcional: un conversor no debería renombrar por defecto.
- Nombres aparentemente reservados — Una columna llamada __proto__ o constructor conserva su nombre exacto. El documento se escribe directamente como texto en lugar de ensamblarse en objetos JavaScript, así que los nombres que no serían asignables en código se conservan correctamente.
JSON anidado desde cabeceras con puntos
Las exportaciones de CRM y de generadores de formularios suelen escribir datos anidados como columnas planas llamadas dirección.ciudad y dirección.cp. Activar el anidado las pliega en un objeto real, de modo que el JSON recupera la forma que tenían los datos antes de aplanarse.
- Punto o barra — Puede usarse cualquiera de los dos separadores, y está desactivado por defecto: una columna legítimamente llamada Ingresos.2024 no debería convertirse en objeto salvo que lo pidas.
- Cualquier profundidad — a.b.c.d anida cuatro niveles. Los segmentos vacíos se colapsan, así que a..b equivale a a.b.
- Nunca se pierde una columna — Si un archivo tiene a la vez dirección y dirección.ciudad, un mismo nombre no puede ser valor y objeto a la vez. En lugar de descartar cualquiera de los dos, las columnas con puntos conservan su nombre plano original y la herramienta nombra las que no pudo anidar.
- No se renombra nada — La alternativa a dejar una columna plana sería inventarle un nombre, con lo que el JSON dejaría de coincidir con el archivo. Cada clave de la salida es una cabecera que contenía el archivo o un column_N explícito para una que no.
Opciones de análisis explicadas
Cada control cambia cómo los caracteres se convierten en campos y cómo los campos se convierten en propiedades JSON. Se aplican al archivo según los cambias, así que la vista previa siempre muestra los ajustes actuales.
- Delimitador — El modo automático puntúa coma, punto y coma, tabulador y barra según lo rectangular que quede el archivo, no según cuántas veces aparece el carácter, así que las comas dentro de campos entrecomillados no alteran el resultado. El modo manual se impone en archivos difíciles.
- Carácter de comillas — Las comillas dobles son el estándar, pero existen archivos entrecomillados con apóstrofos y archivos sin comillas donde un apóstrofo en un nombre se leería como una. Una comilla solo abre un campo al principio de ese campo, que es lo que mantiene intacto O'Brien.
- Omitir filas iniciales — Los informes suelen llevar un título y una línea en blanco encima de la cabecera real. Omitirlas convierte la fila correcta en cabecera, y las filas se cuentan como filas: un título con un salto de línea sigue siendo una fila.
- Primera fila como claves — Asigna las cabeceras a claves JSON; desactívalo cuando el archivo no tiene cabecera y toda fila es dato, y las columnas se llamarán column_1 en adelante.
- Recortar espacios — Activado por defecto, de modo que una exportación de ancho fijo lee ' 42 ' como el número 42. Desactívalo cuando el espaciado de una celda es intencionado.
- Celdas vacías — Una celda vacía se convierte en null, en cadena vacía, o la clave se omite del registro. En las formas posicionales —arrays y arrays por columna— omitir un valor desplazaría todas las columnas siguientes, así que allí la celda vacía sigue siendo null.
Cuándo usar cada codificación de archivo
Si las letras o los símbolos de moneda se ven mal en la vista previa, elige otro decodificador. El modo automático resuelve casi todo; las opciones manuales son para los archivos que no puede conocer.
- Automática — Lee la marca de orden de bytes si el archivo la tiene, luego comprueba si los bytes son UTF-8 válido y, si no, recurre a Windows-1252, que es lo que escribe una hoja de cálculo occidental cuando no se le pide otra cosa.
- UTF-8 — Predeterminada para almacenes de datos, exportaciones SaaS y todo lo guardado como Unicode. La marca UTF-8 se elimina en vez de pasar a formar parte de la primera clave.
- UTF-16LE y UTF-16BE — Lo que produce la exportación «Texto Unicode». Leído como UTF-8 por error, ese archivo se convierte en una única columna enorme de caracteres nulos.
- Windows-1252 — Habitual en CSV de Excel para Windows en configuraciones de Europa occidental, donde 0x92 es un apóstrofo tipográfico.
- ISO-8859-1 — Un decodificador Latin-1 real, donde cada byte se asigna al punto de código del mismo valor. La mayoría de herramientas lo ofrecen como opción aparte y luego te dan Windows-1252, porque el estándar de codificación de la web trata el nombre como un alias; aquí es el decodificador real, para archivos donde 0x80–0x9F son códigos de control y no puntuación.
Conversión por lotes y combinación de archivos
Un archivo cada vez es gratis, hasta 25 MB. Pro añade la escala y las opciones de entrega; la conversión en sí, y toda opción que afecte a la corrección, son idénticas en ambos planes.
- Hasta 50 archivos — Encola una carpeta de exportaciones y conviértelas en una sola pasada, cada una con su delimitador, codificación y fila de cabecera detectados.
- Una descarga ZIP — Un lote se descarga como un único archivo comprimido en lugar de cincuenta diálogos de guardado. Los nombres se hacen seguros para la extracción, de modo que un nombre de una exportación no fiable no puede escribir fuera de la carpeta donde se descomprime.
- Combinar en un documento — Fusiona todos los archivos encolados en un solo array de objetos o en un único archivo JSON Lines. Cada archivo se lee con su propia fila de cabecera, así que la tercera columna del archivo dos nunca se escribe bajo la tercera cabecera del archivo uno.
- Todo lo demás es gratis — Las cinco formas de salida, la inferencia de tipos, el anidado, las transformaciones de claves, las anulaciones por columna, todas las codificaciones y todas las sangrías están disponibles en el plan gratuito.
¿Por qué convertir CSV a JSON?
JSON es la lengua franca de las APIs REST, las funciones serverless y los cargadores NoSQL. Pasar de CSV a JSON permite validar formas, comparar salidas y enviar filas a aplicaciones sin reescribir analizadores en cada lenguaje.
- Listo para API y automatización — Alimenta la misma estructura en cuerpos fetch, herramientas CLI o almacenes de documentos.
- Estructurado para código — Arrays y objetos se corresponden limpiamente con tipos de TypeScript, Python o Go tras la conversión.
- Tipado, así sobrevive al viaje — Un número JSON es un número para todos los consumidores. Una celda CSV es texto para todos ellos, y cada uno adivina de forma distinta.
- Comparable — El JSON formateado con un valor por línea produce una comparación legible, cosa que una fila CSV de una sola línea no hace.
Cómo funciona la conversión
El archivo se lee como bytes, se decodifica con la codificación que declara el archivo o que eliges tú, se escanea en filas y se escribe directamente como texto JSON. No hay hoja de cálculo intermedia ni viaje de ida y vuelta a un servidor.
- Decodificar — La marca de orden de bytes se lee primero y prevalece sobre el desplegable, porque la marca es el archivo declarando su codificación. Sin ella, se detecta UTF-8 válido y Windows-1252 es el respaldo.
- Detectar y dividir — El delimitador y el carácter de comillas se puntúan juntos sobre una muestra, y se muestran tanto el ganador como el segundo, de modo que una decisión ajustada es visible y no silenciosa. Los campos entrecomillados pueden contener delimitadores y saltos de línea.
- Tipar — Cada celda se clasifica contra una gramática en lugar de entregarse a un analizador permisivo del lenguaje, que es lo que mantiene intactos 007, 10-20 y +1 en vez de convertirlos en 7, una fecha y 1.
- Escribir — El documento se escribe por bloques y se ensambla como archivo en lugar de como una única cadena enorme, que es por lo que un resultado de 27 MB no bloquea la página. La salida es byte a byte lo que produciría el serializador del propio lenguaje.
La conversión se ejecuta en tu dispositivo, fuera del hilo principal, y escribe el documento por bloques en lugar de construirlo de una pieza: una exportación de 10 MB se convierte en aproximadamente medio segundo y la página nunca deja de responder.
Preguntas frecuentes
¿Cómo convierto CSV a JSON?
Suelta un archivo .csv, .tsv, .txt o .psv, elige una forma de salida y decide si la primera fila se convierte en claves de objeto. La vista previa se actualiza al cambiar cualquier ajuste, así que ves el JSON exacto antes de confirmar. Pulsa Convertir y la herramienta genera el documento completo, que puedes copiar al portapapeles o descargar como archivo .json, sin que el archivo salga de tu dispositivo.
¿Qué cambia «primera fila como claves» en la salida?
Cuando está activo, la fila de cabecera aporta los nombres de propiedad y cada fila siguiente se convierte en un objeto JSON, dando un array de registros { "columna": "valor" } listo para APIs. Cuando está desactivado, la primera fila se trata como datos y las columnas se llaman column_1, column_2 y así sucesivamente, de modo que no se pierde nada. Elegir la forma array de arrays conserva cada celda por posición, útil para datos matriciales.
¿Por qué mis columnas se dividen mal?
Probablemente el delimitador elegido no coincide con el archivo. La detección automática puntúa coma, punto y coma, tabulador y barra según lo rectangular que quede el archivo, no según cuántas veces aparece el carácter, así que una coma dentro de una dirección entrecomillada no altera el resultado. Aun así puedes forzar el delimitador y el carácter de comillas (dobles, simples o ninguno) hasta que las columnas cuadren.
¿Qué codificaciones de archivo se admiten?
La detección automática lee primero cualquier marca de orden de bytes y recurre a UTF-8 y luego a Windows-1252. También puedes forzar UTF-8, UTF-16LE, UTF-16BE, Windows-1252 o ISO-8859-1. Una marca de orden de bytes siempre prevalece sobre el desplegable, porque la marca es el archivo declarando su codificación mientras que el desplegable es una suposición; y la herramienta te avisa cuando ocurre en vez de hacerlo en silencio.
¿Convierte los números en números JSON reales?
Sí, y se niega a hacerlo cuando eso destruiría información. Un código de pieza como 007 conserva sus ceros iniciales, un número de tarjeta de veinte dígitos sigue siendo una cadena en lugar de perder sus últimas cifras por redondeo en coma flotante, un teléfono escrito +34600123456 conserva su signo más, e Infinity y NaN siguen siendo cadenas porque ninguno es JSON válido. TRUE y FALSE se vuelven booleanos y NULL se vuelve null. Las fechas siguen siendo cadenas, porque JSON no tiene tipo fecha y cualquier conversión sería una suposición.
¿Puede construir JSON anidado a partir de mis cabeceras?
Sí. Cabeceras escritas como dirección.ciudad y dirección.cp pueden plegarse en un objeto dirección anidado, que es como salen las exportaciones de la mayoría de los CRM. Las cabeceras separadas por barras funcionan igual. Si un archivo tiene a la vez una columna llamada dirección y otra dirección.ciudad, ambas no pueden ocupar el mismo lugar en un documento, así que las columnas con puntos conservan su nombre plano original y la herramienta te dice cuáles: nunca se descarta ni se renombra una columna para que el anidado funcione.
¿Se sube mi CSV a algún sitio?
No. El archivo se lee, se analiza y se escribe íntegramente en tu dispositivo, y el documento final pasa directamente a una descarga o al portapapeles. Eso mantiene privadas las exportaciones confidenciales, permite trabajar sin conexión una vez cargada la página y hace la herramienta usable en móviles y tabletas además de en escritorio.
¿Es gratis y admite archivos grandes?
Sí, gratis. El plan gratuito convierte un archivo cada vez de hasta 25 MB, aproximadamente 250.000 filas de una exportación típica, con todas las formas de salida y todas las opciones disponibles. La conversión se ejecuta fuera del hilo principal, así que la página sigue respondiendo y la vista previa se actualiza mientras se escribe un archivo grande. Pro añade conversión por lotes de hasta 50 archivos, una única descarga ZIP y la combinación de un lote en un solo documento.
de 186 valoraciones
Valora esta herramienta
Toca una estrella — es un segundo