La herramienta que necesitas, lista para usar

Convertidor de CSV a JSON

Pega un CSV o abre un archivo y aparece al instante una matriz JSON de objetos con la primera fila como claves; pega un JSON y obtienes un CSV que se abre en Excel. El separador se elige solo, ya sea coma, tabulación o punto y coma, y valores como 0012 se quedan tal como están escritos. Un JSON anidado, como la respuesta de una API, se expande en columnas como 'cliente.nombre', y la vista de tabla muestra cuántos números, textos y celdas vacías tiene cada columna y en qué se convirtió cada fila.

Última modificación 2026-10-20Todo el cálculo ocurre en tu navegador

El texto y los archivos no se envían a ningún servidor. Todo se convierte en este navegador.

Vista de tabla

    Última modificación 2026-10-20No guardamos lo que escribes

    Criterio ROBERINLa herramienta que necesitas,
    lista para usar.
    • Claro a primera vistaEntradas y resultados donde los esperas.
    • Primero el resultadoLa cifra clave va primero; el proceso solo cuando lo necesitas.
    • Pedir menosSin registro ni datos innecesarios.

    La primera fila del CSV son las claves y cada fila de datos es un objeto JSON

    El CSV es una tabla en la que las comas separan las celdas y los saltos de línea separan las filas. Una matriz JSON de objetos es una lista de objetos con pares de nombre y valor, colocados entre corchetes [ ]. Ambos formatos pueden contener los mismos datos. Los nombres de columna de la primera fila del CSV pasan a ser las claves de cada objeto, y cada fila inferior pasa a ser un objeto. En el ejemplo de arriba, la primera fila 'código,nombre,precio,existencias,nota' da cinco claves, y las tres filas de datos dan tres objetos. En sentido contrario, el conversor reúne las claves que aparecen en los objetos, las convierte en columnas y escribe cada objeto como una fila.

    El conversor actúa en cuanto pegas el texto o abres un archivo. Elige por sí solo el separador, ya sea coma, tabulación, punto y coma o barra vertical, y por defecto deja tal cual los valores con ceros iniciales, como 0012. Un JSON con objetos dentro de objetos, como la respuesta de una API, se expande en columnas como 'cliente.nombre'. En la vista de tabla de más abajo, una barra por columna indica cuántos números, textos y celdas vacías contiene, y al hacer clic en el número de una fila, el detalle de la fila muestra en qué objeto o línea de CSV se convirtió. Si las comillas o el número de celdas no cuadran, el mensaje señala la línea donde ocurre. El texto y los archivos no se envían a ningún servidor: se procesan solo en este navegador.

    Cuándo conviene pasar de CSV a JSON y al revés

    • Subir una lista de una hoja de cálculo a un servicio web: gestionas productos, socios o existencias en una hoja de cálculo y una API o herramienta de administración espera una matriz JSON. Conviertes el CSV a JSON y lo pegas de una vez.
    • Leer como tabla la respuesta de una API o un registro: un JSON convertido a CSV se puede ordenar y filtrar en Excel o en Hojas de cálculo de Google. Aunque la respuesta venga envuelta, como en { "data": [ … ] }, puedes elegir la matriz interior y convertirla en tabla.
    • Preparar configuraciones, traducciones o datos de prueba: reúnes los valores en una hoja que varias personas editan con facilidad y los exportas como el JSON que lee el programa.
    • Conectar dos programas que aceptan formatos distintos: si una herramienta solo exporta CSV y la otra solo importa JSON, conviertes en el medio.

    Reglas de conversión

    1. Lectura del CSV: el separador divide las celdas y los saltos de línea dividen las filas. Una celda que contiene el separador, comillas dobles o un salto de línea va entre comillas dobles, y unas comillas dobles dentro de la celda se escriben dos veces (""). Los espacios se conservan como parte del valor (RFC 4180). Las líneas totalmente vacías se omiten, salvo en un CSV de una sola columna, donde una línea vacía se lee como valor vacío.
    2. Nombres de columna: la primera fila aporta las claves. Si un nombre está vacío o aparece dos veces, no se puede saber qué valor corresponde a cada clave y la conversión se detiene. Si la primera fila ya contiene datos, cambia 'Primera fila' a 'Datos'; las claves serán columna1, columna2, etc.
    3. Comprobación del número de celdas: todas las filas deben tener tantas celdas como la primera. El conversor no adivina las celdas que faltan ni descarta las que sobran: indica la línea que no coincide.
    4. Valores: la opción predeterminada 'Todo como texto' copia cada celda como cadena de texto. Con 'Detectar números', las celdas que cumplen las reglas de la tabla siguiente pasan a ser números, true o false, o null.
    5. JSON → CSV: las claves de todos los objetos se reúnen en el orden en que aparecen por primera vez y forman las columnas. Una clave que le falta a un objeto, y el valor null, quedan como celda vacía. Un objeto dentro de otro se expande con un nombre unido por puntos (.), y una matriz se expande con índices que empiezan en 0.
    6. Escritura del CSV: solo van entre comillas dobles las celdas que contienen el separador, comillas dobles o un salto de línea, y las líneas terminan en CRLF. El BOM para Excel se añade al principio solo al guardar, nunca al texto copiado.

    Qué se considera un número

    El CSV no tiene tipos de datos, así que todas las celdas son texto. 'Detectar números' convierte una celda en número solo si cumple la sintaxis numérica de JSON y, al volver a escribirla como texto, queda igual. La sintaxis de JSON no admite ceros iniciales, por lo que 0012 no es un número (RFC 8259). El mayor entero que un navegador maneja con exactitud es 9.007.199.254.740.991 (253 − 1), así que un número de pedido mayor se queda como texto.

    Celda CSVTodo como textoDetectar númerosMotivo
    0012"0012""0012"Un cero inicial no es sintaxis numérica válida en JSON
    25900"25900"25900Número entero
    1.50"1.50"1.5Mismo valor; el cero final desaparece
    1e3"1e3"1000La notación exponencial también es un número
    TRUE"TRUE"truetrue y false no distinguen mayúsculas
    null"null"nullSolo null en minúsculas
    (celda vacía)""""Sigue siendo una cadena vacía
    9007199254740993"9007199254740993""9007199254740993"Fuera del rango de enteros seguros
    0.1234567890123456"0.1234567890123456""0.1234567890123456"16 cifras significativas no se pueden guardar con exactitud
    -0"-0""-0"Como número pasaría a ser 0, así que se deja como texto
    "1,234""1,234""1,234"Un valor con coma de millares es texto

    Para valores con los que no se calcula, como códigos de producto, códigos postales o teléfonos, 'Todo como texto' es la opción segura. 'Detectar números' decide celda por celda, no por columna: los códigos que empiezan por 0 se quedan como texto, pero códigos como 1234 o un 0 solo encajan en la sintaxis numérica y pasan a ser números, de modo que una misma columna puede mezclar texto y números. Si tienes una columna de códigos, usa 'Todo como texto'.

    Expandir un JSON anidado, como la respuesta de una API

    El ejemplo de JSON → CSV es una respuesta cuya lista de pedidos está bajo la clave 'pedidos'. Cuando el valor exterior es un objeto, el conversor busca dentro una matriz de objetos y la convierte en tabla; si hay varias, elige primero la que tiene más elementos. Para usar otra matriz, o el objeto entero como una sola fila, cambia 'Lista para la tabla' sobre la entrada. Un objeto dentro de otro se une con un punto, como en 'cliente.nombre', y una matriz recibe un índice, como en 'etiquetas.0' y 'etiquetas.1'.

    idcliente.nombrecliente.ciudadcantidadpagadoetiquetas.0etiquetas.1nota
    A-0012LucíaSevilla2truenuevocupón
    A-0013MateoBilbao1false

    El segundo pedido no tiene 'etiquetas' y su 'nota' es null, por lo que esas celdas quedan vacías. Un objeto vacío { } y una matriz vacía [ ] se conservan en la celda como el texto {} y [], para que no se confundan con un valor que ha desaparecido. Si vuelves a convertir a JSON el CSV expandido, 'cliente.nombre' pasa a ser una sola clave que contiene un punto y la estructura anidada no se recupera. También puedes pegar directamente JSON Lines (.jsonl), que tiene un objeto por línea, y se lee como una fila por línea.

    Abrir y guardar en Excel

    • Que las tildes y la eñe no se estropeen: Microsoft explica que un CSV en UTF-8 guardado con BOM (marca de orden de bytes) se abre correctamente en Excel de la forma habitual. Por eso 'BOM para Excel' está activado de forma predeterminada al guardar un CSV. Un archivo sin BOM puede abrirse desde la pestaña Datos con la opción Desde texto o CSV, donde se puede elegir la codificación.
    • CSV con punto y coma: el separador de listas que Excel usa al guardar CSV es por defecto la coma, pero se puede cambiar en la configuración regional de Windows, y entonces todos los programas usan ese carácter. Por eso, según la configuración regional, un CSV puede venir separado por punto y coma. Este conversor usa por defecto el punto y coma en el CSV de resultado, pensado para un Excel con esa configuración; para usar otro, cambia el separador en el campo de separador del resultado. El separador de entrada 'Automático' también reconoce el punto y coma.
    • Celdas copiadas de Excel: si copias celdas de Excel o de Hojas de cálculo de Google y las pegas aquí, llegan separadas por tabulaciones. 'Automático' elige la tabulación, de modo que puedes convertir sin guardar antes un archivo.
    • Codificaciones antiguas: un archivo que no se puede leer como UTF-8 se vuelve a leer como Windows-1252, la página de códigos de las versiones de Windows de Europa occidental, y una nota sobre la entrada indica qué codificación se usó.
    • Libros de Excel: los archivos .xlsx y .xls son libros comprimidos y no se pueden abrir directamente. Guarda la hoja como CSV en Excel y abre ese archivo.

    La sintaxis del CSV sigue la RFC 4180; la sintaxis de JSON y el rango numérico, la RFC 8259. Lo relativo al BOM, al separador de listas y a los ceros iniciales se comprobó en los documentos de soporte de Microsoft el 2026-10-20.

    Qué se pierde al pasar por CSV

    Una celda CSV solo contiene texto, así que los tipos de datos de JSON no sobreviven a un paso por CSV. Esto es lo que cambia al ir de JSON a CSV y volver a JSON.

    JSON originalCelda CSVDe nuevo JSON (Todo como texto)
    "nota": null(vacía)"nota": ""
    "nota": ""(vacía)"nota": ""
    clave ausente(vacía)"nota": ""
    "cantidad": 33"cantidad": "3"
    "pagado": truetrue"pagado": "true"
    "cliente": {"nombre": "Lucía"}Lucía en la columna cliente.nombre"cliente.nombre": "Lucía"

    Si tus datos necesitan distinguir entre null, una cadena vacía y una clave ausente, conserva también el JSON original o añade una columna que registre el estado. Los números y true o false se pueden recuperar con 'Detectar números', pero un valor que originalmente era la cadena "3" también pasa a ser un número. Las barras de la vista de tabla muestran el tipo del valor original en el JSON, de modo que una celda que era null se colorea como 'Booleano/null' y se distingue de una celda vacía.

    Errores frecuentes

    • No encerrar entre comillas una coma dentro de un valor: escribir Sevilla, Andalucía sin comillas dobles añade una celda y produce un error como 'Esta fila tiene 6 celdas'. Encierra toda la celda, como en "Sevilla, Andalucía".
    • Comillas en medio de una celda: en Soporte portátil "Alu", hay que encerrar toda la celda y duplicar las comillas interiores, de modo que se escribe "Soporte portátil ""Alu""".
    • Pegar tal cual un CSV sin fila de nombres: la primera fila de datos pasa a ser los nombres de columna y se pierde un registro. Cambia 'Primera fila' a 'Datos'.
    • Escribir un número grande como número JSON: un entero como 9007199254740993 sin comillas cambia en cuanto el navegador lo lee. Este conversor se detiene al encontrar un valor así y te indica que lo pongas entre comillas dobles como cadena de texto.
    • Escribir la misma clave dos veces en un objeto: el estándar JSON recomienda que los nombres dentro de un objeto sean únicos (RFC 8259). Si una clave aparece dos veces, este conversor conserva solo el último valor.
    • 0012 se convierte en 12 al abrir el CSV en Excel: el resultado de la conversión sigue conteniendo 0012, pero Excel quita los ceros iniciales y muestra los números grandes en notación exponencial, como 1,23E+15. Excel maneja solo 15 cifras significativas, así que en un número de tarjeta o de pedido de más de 15 cifras las últimas pasan a ser ceros. Importa el archivo desde la pestaña Datos con Desde texto o CSV y asigna a esa columna el tipo de datos Texto.

    Límites y precauciones

    • El conversor admite entradas de hasta 5 MB (5.242.880 bytes), 200.000 celdas contando la fila de nombres, y resultados de hasta 10 MB. Divide los datos más grandes por filas y pon a cada parte la misma fila de nombres.
    • La vista de tabla solo dibuja las primeras 100 filas y 60 columnas. La conversión, la copia y el guardado usan siempre todos los datos.
    • De CSV a JSON siempre se obtiene una matriz plana de objetos. Los nombres de columna con punto no se vuelven a convertir en objetos anidados.
    • JSON Lines solo se lee. Para obtener como resultado un objeto por línea, usa un conversor de matriz JSON ↔ JSONL.
    • Los decimales de JSON pasan a ser números de doble precisión cuando el navegador los lee, así que un decimal muy largo puede variar en las últimas cifras. Los valores cuyas cifras deben conservarse, ponlos como cadenas de texto.
    • Una celda que empieza por =, +, -, @ o una tabulación puede ser interpretada como fórmula por Excel (OWASP lo llama inyección de CSV o inyección de fórmulas). Este conversor no modifica los valores, así que, al abrir en Excel datos convertidos de origen desconocido, comprueba antes si hay celdas así.

    Fuentes

    Preguntas frecuentes

    ¿Cómo convierto un CSV a JSON?

    Pega el CSV en el cuadro de entrada o abre un archivo, y en el resultado aparece enseguida una matriz JSON de objetos. Los nombres de columna de la primera fila pasan a ser las claves y cada fila inferior es un objeto. Cópiala o guárdala como archivo .json.

    ¿Se pierden los ceros iniciales, como en 0012?

    No. La opción predeterminada 'Todo como texto' copia cada celda como cadena, así que 0012 pasa a ser "0012". Aunque elijas 'Detectar números', un valor que empieza por 0 no cumple la sintaxis numérica de JSON y se queda como texto.

    ¿Cómo obtengo los precios y las cantidades como números y no como cadenas?

    Cambia 'Valores' a 'Detectar números'. Entonces 25900 pasa a ser el número 25900, true y false pasan a ser booleanos y null pasa a ser null. Los enteros mayores que 9.007.199.254.740.991 y los decimales con 16 o más cifras significativas se quedan como texto para que su valor no cambie.

    El CSV convertido se ve con caracteres rotos en Excel. ¿Qué hago?

    Deja activado 'BOM para Excel' al guardar. Viene activado de forma predeterminada, y un CSV en UTF-8 con BOM se abre correctamente en Excel. Si el archivo no tiene BOM, usa la pestaña Datos con la opción Desde texto o CSV y elige UTF-8 como codificación.

    ¿Puede convertir archivos separados por punto y coma o por tabulaciones?

    Sí. El separador 'Automático' revisa las primeras 20 líneas y elige la coma, la tabulación, el punto y coma o la barra vertical que da el mismo número en todas las líneas. Las celdas copiadas de Excel llegan separadas por tabulaciones y se convierten tal cual. El resultado CSV usa punto y coma por defecto, y también puedes elegir su separador.

    ¿Se puede convertir a CSV un JSON anidado o la respuesta de una API?

    Sí. Si el valor exterior es un objeto, el conversor busca dentro la matriz de objetos y la convierte en tabla. Un objeto dentro de otro se expande con puntos, como en 'cliente.nombre', y una matriz con índices, como en 'etiquetas.0'. Elige otra matriz en 'Lista para la tabla'; también se lee JSON Lines, con un objeto por línea.

    ¿Qué hago si mi CSV no tiene fila de nombres de columna?

    Cambia 'Primera fila' a 'Datos'. Así la primera fila se lee como datos y las claves se llaman columna1, columna2, etc. de forma automática. Si no lo haces, la primera fila de datos pasa a ser los nombres de columna y se pierde un registro.

    ¿Se envían mis datos a un servidor?

    No. El texto pegado y los archivos abiertos se convierten solo dentro de este navegador y no se guardan. Se procesan entradas de hasta 5 MB y 200.000 celdas.