Cómo convertir CSV a JSON: La guía completa para desarrolladores
Domina la conversión de CSV a JSON con ejemplos prácticos, código en múltiples lenguajes y un conversor online gratuito.
Cómo convertir CSV a JSON: La guía completa para desarrolladores
CSV (Comma-Separated Values) y JSON (JavaScript Object Notation) son dos de los formatos de datos más comunes en el desarrollo de software. CSV es excelente para almacenar datos tabulares — piensa en hojas de cálculo y exportaciones de bases de datos. JSON es el formato preferido para APIs, aplicaciones web y archivos de configuración.
Convertir entre estos formatos es una tarea a la que los desarrolladores se enfrentan regularmente. Esta guía te presenta todo lo que necesitas saber sobre la conversión de CSV a JSON, incluyendo múltiples enfoques, ejemplos de código y errores comunes.
Entendiendo los formatos
CSV
CSV es un formato simple, basado en líneas, donde cada fila representa un registro y los campos están separados por comas (u otro delimitador):
nombre,edad,ciudad,activo
Alice,30,Madrid,true
Bob,25,Barcelona,false
Charlie,35,Valencia,true
Características clave:
- La primera fila normalmente contiene los encabezados (nombres de columnas)
- Sin tipos de datos nativos (todo es una cadena)
- Sin anidamiento — datos estrictamente planos y tabulares
- Compacto y eficiente para grandes conjuntos de datos
JSON
JSON es un formato estructurado y jerárquico que usa pares clave-valor y arrays:
[
{ "nombre": "Alice", "edad": 30, "ciudad": "Madrid", "activo": true },
{ "nombre": "Bob", "edad": 25, "ciudad": "Barcelona", "activo": false },
{ "nombre": "Charlie", "edad": 35, "ciudad": "Valencia", "activo": true }
]
Características clave:
- Soporta objetos y arrays anidados
- Tiene tipos de datos distintos (string, number, boolean, null)
- Más verboso pero mucho más expresivo
- Nativo en JavaScript y ampliamente soportado en todos los lenguajes
¿Por qué convertir CSV a JSON?
Escenarios comunes donde necesitas convertir CSV a JSON:
- Desarrollo de APIs: Tu fuente de datos es un archivo CSV, pero tu API devuelve JSON.
- Migración de datos: Transferir datos de un sistema legacy (exportaciones CSV) a una aplicación moderna (basada en JSON).
- Desarrollo frontend: Cargar datos CSV en una aplicación JavaScript que espera JSON.
- Configuración: Convertir configuraciones basadas en hojas de cálculo en archivos de configuración JSON.
- Análisis de datos: Preparar datos CSV para bibliotecas de visualización basadas en JavaScript.
Método 1: Convertir CSV a JSON con JavaScript
function csvToJson(csv) {
const lines = csv.trim().split('\n');
const headers = lines[0].split(',').map(h => h.trim());
return lines.slice(1).map(line => {
const values = line.split(',').map(v => v.trim());
const obj = {};
headers.forEach((header, index) => {
let value = values[index];
if (value === 'true') value = true;
else if (value === 'false') value = false;
else if (!isNaN(value) && value !== '') value = Number(value);
obj[header] = value;
});
return obj;
});
}
const csv = `nombre,edad,ciudad
Alice,30,Madrid
Bob,25,Barcelona`;
console.log(JSON.stringify(csvToJson(csv), null, 2));
Limitación: Este enfoque básico no maneja campos entre comillas con comas dentro. Para uso en producción, usa una biblioteca como Papa Parse.
Con Papa Parse (recomendado)
import Papa from 'papaparse';
Papa.parse(csvString, {
header: true,
dynamicTyping: true,
complete: (results) => {
console.log(JSON.stringify(results.data, null, 2));
}
});
Método 2: Convertir CSV a JSON con Python
import csv
import json
def csv_to_json(csv_file, json_file):
with open(csv_file, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
data = list(reader)
for row in data:
for key, value in row.items():
if value.lower() in ('true', 'false'):
row[key] = value.lower() == 'true'
elif value.isdigit():
row[key] = int(value)
with open(json_file, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
csv_to_json('data.csv', 'data.json')
Método 3: Convertir CSV a JSON desde la línea de comandos
Con las herramientas adecuadas instaladas:
# Con csvkit
csvjson data.csv > data.json
# Con Miller
mlr --icsv --ojson cat data.csv > data.json
Manejando los desafíos comunes del CSV
Campos entre comillas con comas
nombre,descripcion,precio
"Widget A","Un widget grande, rojo",9.99
La descripción contiene una coma dentro de comillas. Los enfoques simples con split(',') fallarán aquí. Siempre usa un parser CSV adecuado que maneje las reglas de comillas RFC 4180.
Diferentes delimitadores
No todos los archivos «CSV» usan comas. Algunos usan:
- Tabulaciones (TSV):
\t - Punto y coma:
;(común en locales europeos) - Pipes:
|
Asegúrate de que tu parser esté configurado para el delimitador correcto.
Problemas de codificación
Los archivos CSV de diferentes sistemas pueden usar diversas codificaciones de caracteres:
- UTF-8 (el más común, recomendado)
- UTF-8 con BOM (común desde Excel en Windows)
- Latin-1 / ISO-8859-1 (sistemas antiguos)
Siempre especifica la codificación al leer archivos CSV para evitar caracteres corruptos.
Valores faltantes o sobrantes
Los datos CSV reales suelen ser desordenados:
- Algunas filas pueden tener menos columnas que el encabezado
- Algunas celdas pueden estar vacías
- Pueden existir espacios adicionales
Un conversor robusto debe manejar esto con elegancia — rellenando valores faltantes con null y eliminando espacios.
Conversión de tipos: un aspecto clave
CSV no tiene concepto de tipos de datos — todo es una cadena. Al convertir a JSON, normalmente quieres:
| Valor CSV | Valor JSON |
|---|---|
"42" |
42 (número) |
"true" / "false" |
true / false (booleano) |
"" (vacío) |
null |
"hola" |
"hola" (cadena) |
Algunos conversores ofrecen detección automática de tipos, mientras que otros mantienen todo como cadenas. Elige según tu caso de uso.
Prueba nuestro conversor CSV a JSON gratuito
Nuestro Conversor CSV a JSON maneja toda la complejidad por ti:
- Pega tus datos CSV o sube un archivo
- Detecta automáticamente encabezados y tipos de datos
- Maneja campos entre comillas, diferentes delimitadores y codificación
- Genera JSON limpio y formateado, listo para usar
- Funciona completamente en tu navegador — tus datos permanecen privados
Perfecto para conversiones rápidas, pruebas de API, exploración de datos y depuración. Sin instalación, sin registro, sin límites.
Buenas prácticas para la conversión CSV a JSON
- Siempre valida tu CSV primero: Verifica la consistencia del número de columnas y las comillas correctas.
- Maneja los encabezados con cuidado: Asegúrate de que los encabezados sean claves JSON válidas (sin espacios ni caracteres especiales — o sanitízalos).
- Elige el formato de salida correcto: Array de objetos (el más común) u objeto indexado (para búsquedas).
- Prueba con casos extremos: Filas vacías, caracteres especiales, valores muy largos.
- Considera el tamaño del archivo: Para archivos CSV muy grandes (>100 MB), usa parsers de streaming en lugar de cargar todo en memoria.
Conclusión
Convertir CSV a JSON es una tarea rutinaria pero importante en el desarrollo moderno. Ya sea que uses bibliotecas de código, herramientas de línea de comandos o un conversor online, la clave es manejar correctamente los casos especiales — campos entre comillas, conversión de tipos y codificación.
Para conversiones rápidas y fiables, prueba nuestro Conversor CSV a JSON — es gratis, rápido y maneja los casos complicados automáticamente.
Herramientas relacionadas
Última actualización el 2026-09-27