Convertir CSV a JSON
Convierte un archivo CSV o una tabla pegada en un JSON limpio: números y booleanos con su tipo, objetos anidados creados a partir de encabezados con puntos, y exactamente la estructura que espera tu código.
- Nunca se guarda
- Sin filas ni esperas
- Sin registro, sin marca de agua
Cómo funciona
Agrega el CSV
Suelta un archivo .csv o .tsv, o pega los datos. El delimitador y la codificación se detectan por ti.
Elige la estructura
Un array de objetos, un array de arrays, un objeto con la primera columna como clave o JSON Lines, además de los tipos, los valores vacíos y la sangría.
Copia o descarga
Copia el JSON al portapapeles o guárdalo como archivo .json.
Donde CSV es más impreciso de lo que parece
CSV no tiene un estándar real: existe una especificación orientativa de 2005 que describe lo que hacen la mayoría de las herramientas, y muchísimo software que hace otra cosa. Así que lo primero es averiguar qué es realmente el archivo: si los valores están separados por comas, puntos y coma o tabulaciones (las configuraciones regionales europeas exportan con punto y coma, porque la coma es su separador decimal), si la primera fila es un encabezado y cómo se manejan las comillas. Un campo entre comillas puede contener legítimamente comas, saltos de línea y comillas duplicadas; por eso separar por comas es la forma equivocada de leerlo, y por eso un analizador ingenuo corrompe cualquier archivo que contenga una dirección.
Los tipos son lo segundo, y JSON tiene criterios que CSV no tiene. Una celda CSV contiene texto y nada más; JSON distingue números, cadenas, booleanos y null. Algo tiene que decidir qué es cada cosa, y las decisiones que importan son las que salen mal: un cero inicial es significativo en un código postal, un número de teléfono o una referencia de cuenta, así que un valor como 01234 debe quedarse como cadena y no convertirse en el número 1234. Lo mismo vale para los identificadores largos, que pierden precisión como números JSON por encima de unos nueve mil billones.
Las fechas se quedan como el texto que eran, porque JSON no tiene tipo de fecha. 2024-03-05 sale como la cadena "2024-03-05", y esa es la respuesta honesta, no una limitación: la alternativa es adivinar, y adivinando es como 03/05/2024 se vuelve marzo en un país y mayo en otro. Convertirlas es una decisión de lo que vaya a consumir el JSON, que sabe qué formato quiere.
La codificación es la última falla silenciosa. Un CSV no lleva ninguna indicación de su codificación de caracteres, así que un archivo guardado como Windows-1252 y leído como UTF-8 produce caracteres ilegibles justo en las filas con nombres acentuados; y una marca de orden de bytes al inicio, que Excel agrega, aparece como caracteres sueltos en el nombre del primer campo si no se maneja. Ambas cosas son propiedades de CSV, no de un convertidor en particular.
Si buscas otra cosa
Para archivos demasiado grandes para caber en memoria, o para cualquier cosa automatizada, csvkit está hecho a propósito: csvjson --stream data.csv convierte de forma incremental, csvlook te deja ver primero lo que tienes y csvclean arregla las filas irregulares que rompen todo lo que viene después. Miller (mlr --icsv --ojson cat data.csv) hace lo mismo a gran velocidad y maneja JSON delimitado por líneas, que es lo que realmente quieren la mayoría de las canalizaciones de datos.
Cuando los tipos importan más que la comodidad, haz la conversión en código con los tipos declarados en lugar de deducidos. pandas de Python con un mapeo dtype explícito, o un pequeño script con un esquema, garantiza que un código postal siga siendo un código postal y que un identificador conserve todos sus dígitos, algo que ninguna inferencia automática puede garantizar en un archivo que no ha visto completo.
Preguntas frecuentes
¿Qué estructura de JSON debo elegir?
Un array de objetos ([{"name": "Ada", "age": 36}]) sirve para casi cualquier API o biblioteca. Un array de arrays es lo más compacto. Un objeto con claves permite que el código busque registros por ID. JSON Lines pone un registro por línea, para herramientas de streaming, BigQuery y canalizaciones de logs.
¿Cómo se decide qué es número y qué es booleano?
Una vez por columna: una columna se convierte en números solo cuando todos sus valores son números, así que "007" y 7 nunca terminan mezclados bajo la misma clave. Los valores con ceros iniciales y los ID demasiado largos para que JavaScript los represente con exactitud se quedan como cadenas. true y false se convierten en booleanos, y las celdas vacías en null, o en cadenas vacías, o se omiten, como prefieras.
¿Puede crear JSON anidado?
Sí. Con el anidado activado, un encabezado como address.city se convierte en {"address": {"city": …}}, y tags.0, tags.1 se convierten en un array.
¿Se guardan mis datos en algún lugar?
No. No se envía nada a ningún lado y no se guarda nada.
¿Y el punto y coma, las tabulaciones y otras codificaciones?
Las comas, los puntos y coma, las tabulaciones y las barras verticales se detectan automáticamente, igual que UTF-8, UTF-16 y las codificaciones antiguas de Windows, así que el texto con acentos o en alfabetos no latinos llega intacto.
¿Y los nombres de columna duplicados o vacíos?
Los duplicados reciben un número (name, name_2) y los encabezados vacíos un nombre según su posición (column_3), así que ningún valor se sobrescribe y se te informa de lo que cambió.
Conviene saber: Las fechas se quedan como el texto de tu archivo, porque JSON no tiene tipo de fecha. Los archivos muy grandes están limitados por la memoria de tu navegador.
Agrega esta herramienta a tu sitio web
Gratis para cualquier blog, página de clase o artículo de ayuda. Pega un fragmento de código y tus visitantes podrán usarla directamente en tu página.
Más Herramientas de hojas de cálculo
JSON a CSV
JSON anidado aplanado en columnas limpias
CSV a Excel
CSV a XLSX con números y fechas reales
Excel a XML
Filas convertidas en XML limpio y bien formado
XML a Excel
Registros XML en una hoja de Excel con formato
Excel a CSV
Cualquier hoja a CSV, con la codificación que necesitas
ODS a XLSX
Hojas de cálculo de LibreOffice como libros de Excel