CSV a JSON
Convierte filas de CSV en objetos JSON para APIs, configs o procesamiento programático.
100% local, tu archivo no sale de tu navegador
Todo el procesamiento ocurre en tu dispositivo. No subimos nada a ningún servidor.
Arrastra un archivo CSV
Se convertirá a JSON. Todo ocurre en tu navegador.
CSV vs JSON: dos mundos tabulares
CSV es texto plano lineal: filas y columnas, nada más. JSON es estructura jerárquica: objetos, arrays, tipos explícitos, anidamiento arbitrario. Convertir de uno al otro es útil cuando los datos vienen en formato humano (CSV) pero el destino es programático (API, config, input de script).
El JSON generado puede tener dos formas:
- Array de objetos: cada fila del CSV se vuelve un objeto con las claves siendo los headers. Es lo que consumen las APIs REST, lo que espera JavaScript al recibir datos tabulares, y lo que procesan herramientas como
jqo Power BI. - Array de arrays: primera entrada son los headers, las siguientes son arrays con los valores. Formato más compacto (no repite los nombres de columna en cada fila) — útil para datasets masivos donde el tamaño importa.
Ejemplos concretos
Dado el siguiente CSV:
nombre,edad,email
Juan,32,juan@ejemplo.cl
María,28,maria@ejemplo.clComo array de objetos:
[
{ "nombre": "Juan", "edad": 32, "email": "juan@ejemplo.cl" },
{ "nombre": "María", "edad": 28, "email": "maria@ejemplo.cl" }
]Como array de arrays:
[
["nombre", "edad", "email"],
["Juan", 32, "juan@ejemplo.cl"],
["María", 28, "maria@ejemplo.cl"]
]Inferencia de tipos
CSV trata todo como string. JSON distingue strings, números y booleanos. La conversión intenta adivinar:
- Dígitos con opcional decimal → número. El string “32” se vuelve 32 (sin comillas en el JSON).
- "true" y "false" → boolean.
- Celdas vacías → null.
- Todo lo demás → string.
Cuidado con campos que parecen números pero no deberían serlo: RUTs con ceros iniciales (“0012345-6”), códigos postales, teléfonos. Si tu CSV los tiene como string limpio (sin guion), la inferencia los tomará como número y perderá ceros. En ese caso, pre-procesa el CSV para que esos campos tengan algún carácter no numérico, o elige el formato “array de arrays” y procesa los strings directamente en el consumidor.
Cuándo usar cada formato de salida
Array de objetos: casi siempre la elección correcta. Es lo que esperan APIs REST, lo que consume JavaScript en el browser, lo que Postman y curl's JSON mode manejan naturalmente. Legible por humanos cuando tienes pocas filas.
Array de arrays: cuando los headers son muy largos y se repiten cientos de miles de veces, el formato objetos duplica el tamaño. Ejemplo: un dataset de 10.000 filas con 20 columnas de nombres largos puede pesar 50% más como array de objetos. Array de arrays es más compacto y se procesa igual de rápido si sabes que la primera entrada son los headers.
Casos de uso
Alimentar APIs. Tienes un CSV de datos y necesitas mandarlos a una API REST por batch. Convertir a JSON primero hace el POST directo.
Seeds de base de datos. Tu app usa JSON seeds para poblar la DB en desarrollo. Si el equipo de negocio te entrega los datos en CSV, la conversión es un paso obligado.
Mocks para testing. QA te pasa casos de prueba en Excel/CSV. Los pasas a JSON para consumirlos como fixtures en tus tests.
Importación a NoSQL. MongoDB, Firestore, DynamoDB trabajan nativamente con JSON. El import masivo desde CSV pasa primero por conversión a JSON.
Configuración de sitemaps y feeds. Un CMS consume tu catálogo desde un JSON. El equipo editorial mantiene el catálogo en Excel/CSV porque es más cómodo. La conversión automática cierra el loop.
Casos de uso en Chile
Integración con APIs del Estado. Algunas APIs del SII, del SERNAC, del Registro Civil aceptan POST con arrays JSON. Si tus datos están en CSV (export del ERP o export contable), la conversión es el paso intermedio.
Scripts de automatización. Bash y Python consumen JSON mejor que CSV para iterar con estructura. Tu script de envío masivo de emails, de notificaciones push, de renovación de suscripciones suele preferir JSON.
Herramientas low-code y no-code. Zapier, Make (Integromat), n8n procesan JSON nativamente. Si tu trigger es un Google Sheet y tu action es una API externa, convertir a JSON en medio simplifica la config.
Errores comunes
RUTs truncados. El RUT 5.467.321-K se exportaría como string (tiene K), pero sin guion ni puntos sería tomado como número. Mantén el formato con guion al menos.
Números decimales con coma vs punto. En Chile escribimos 1.500,50 (punto de miles, coma decimal). El JSON espera 1500.5. Si tu CSV viene con formato chileno, los números no se inferirán — aparecerán como strings. Limpia los puntos y cambia coma por punto antes de convertir.
Fechas ambiguas. 03/05/2026 puede ser 3 de mayo o 5 de marzo según locale. JSON no tiene tipo fecha nativo (se serializa como string). Conviene pasar fechas a ISO 8601 (2026-05-03) antes de convertir.
Valores anidados. CSV no tiene jerarquía. Si tu dataset necesita estructura anidada (usuario con array de direcciones), el CSV plano no alcanza — hay que post-procesar el JSON con script.
Seguridad y privacidad
La conversión ocurre 100% en tu navegador. Útil para datasets con información personal (clientes, empleados, pacientes) que no deberían pasar por servicios web desconocidos. Al cumplir con Ley 19.628, mantener el procesamiento local es la opción responsable.
Si necesitas validar el JSON resultante, usa formatear-json que además de formatear valida sintaxis y muestra errores con línea y columna.
Herramientas relacionadas
- JSON a CSV — la conversión inversa.
- Formatear JSON — validar, prettify, minify.
- Excel a JSON — si partís de XLSX.
- Filtrar CSV — pre-procesar antes de convertir.
Preguntas frecuentes
¿Qué formato de JSON genera?
Puedes elegir dos. Array de objetos (recomendado): cada fila es un objeto con las claves siendo los nombres de columna — el formato universal para APIs. Array de arrays: primera entrada son los headers, el resto son filas como arrays — más compacto, útil cuando los nombres de columna son largos.
¿Detecta tipos numéricos?
Sí. Si una celda del CSV contiene solo dígitos y opcionalmente un decimal, se escribe como número en el JSON (no como string). 'true' y 'false' también se detectan como booleanos. Campos ambiguos (como RUTs con ceros iniciales) se mantienen como string.
¿Qué pasa con los encabezados?
Si tu CSV tiene fila de encabezados (default: sí), se usan como claves del objeto. Si no tiene, usamos nombres genéricos 'Columna 1', 'Columna 2', etc. Desmarca 'la primera fila tiene encabezados' si tu CSV no los trae.
¿Soporta valores nulos?
Las celdas vacías se exportan como null en JSON (no como string vacío). Así el consumidor del JSON distingue entre 'no hay dato' y 'dato vacío explícito'.
¿Cuántas filas soporta?
Decenas de miles. El JSON resultante puede ser grande (cada fila se repite la lista de claves en el formato 'objects'), para archivos masivos considera 'arrays' para reducir tamaño un 40-60%.
¿Los datos se suben a algún servidor?
No. El CSV se parsea con papaparse y se serializa a JSON — todo en tu navegador. Ideal cuando los datos son sensibles (clientes, transacciones, datos personales).