Ir al contenido
UtiliaTools

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

  1. Siempre valida tu CSV primero: Verifica la consistencia del número de columnas y las comillas correctas.
  2. Maneja los encabezados con cuidado: Asegúrate de que los encabezados sean claves JSON válidas (sin espacios ni caracteres especiales — o sanitízalos).
  3. Elige el formato de salida correcto: Array de objetos (el más común) u objeto indexado (para búsquedas).
  4. Prueba con casos extremos: Filas vacías, caracteres especiales, valores muy largos.
  5. 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