Conversor CSV ↔ JSON

Transforma archivos CSV en JSON estructurado y viceversa con escape de comillas.

toolboox.app/herramientas/csv-json

Herramienta

Resultado

Qué problema resuelve

Importar exports de hojas de cálculo a APIs que consumen JSON.

El CSV es el formato de intercambio más usado del mundo y también el peor especificado: separadores distintos según el país, comillas escapadas de tres maneras, saltos de línea dentro de un campo y una codificación que nadie declara. Este conversor aplica las reglas del RFC 4180, respeta las comillas y los campos con comas dentro, y te devuelve un JSON con el que sí se puede trabajar, todo en tu navegador.

Coma o punto y coma: el problema del Excel español

Excel usa como separador de listas el que define la configuración regional: coma en inglés, punto y coma en español, porque la coma ya es el separador decimal. Por eso un CSV exportado desde un Excel en español se abre correctamente en otro Excel español y aparece en una sola columna en cualquier herramienta que espere comas. La solución portable es exportar en UTF-8 con coma y comillas, o declarar el separador en la primera línea con sep=;, una extensión propietaria de Microsoft que el resto del mundo no entiende. Detecta el separador contando ocurrencias en la cabecera antes de parsear.

Comillas, comas internas y saltos de línea

El RFC 4180 dice que un campo que contenga coma, comilla o salto de línea debe ir entre comillas dobles, y que una comilla dentro del campo se escribe duplicada (""). Eso significa que no puedes parsear CSV partiendo por comas: un campo "Madrid, España" se rompería. Tampoco puedes leer línea a línea, porque un campo entrecomillado puede contener un salto real. Cualquier parser serio recorre carácter a carácter llevando un estado "dentro/fuera de comillas"; el de esta herramienta lo hace, y por eso importa un CSV exportado de un CRM sin desordenar columnas.

Codificación: UTF-8, BOM y los acentos rotos

Los acentos que aparecen como á son un CSV en UTF-8 leído como Windows-1252. El caso inverso, ? o rombos negros, es un fichero latino leído como UTF-8. Excel para Windows sólo detecta UTF-8 automáticamente si el fichero empieza con BOM (los tres bytes EF BB BF), así que exportar con BOM es la forma práctica de que el usuario final vea bien los acentos, aunque muchos parsers deben saltárselo. Convierte con iconv -f WINDOWS-1252 -t UTF-8 entrada.csv > salida.csv cuando recibas un fichero antiguo.

Tipos, ceros a la izquierda y fechas

Al convertir a JSON hay que decidir si "00123" es la cadena de un código de artículo o el número 123, y si 01/02/2026 es el 1 de febrero (España) o el 2 de enero (EE. UU.). La regla segura para datos de negocio es no inferir: deja todo como texto y convierte explícitamente los campos que sepas numéricos. Los códigos postales, los DNI, los IBAN, los números de teléfono y las referencias internas deben ser siempre cadenas; convertirlos a número destruye los ceros iniciales de forma irreversible. Para fechas, normaliza a ISO 8601 (2026-02-01), que ordena alfabéticamente y no admite ambigüedad.

De JSON anidado a CSV plano

El camino inverso tiene su propia trampa: CSV es tabular y JSON es un árbol. Un objeto anidado hay que aplanarlo con notación de puntos (cliente.direccion.ciudad) y un array hay que decidir si se serializa en una celda separada por punto y coma o si genera una fila por elemento (desnormalización). Elegir mal multiplica filas y descuadra los totales. Si el destino es una hoja de cálculo para revisión humana, aplanar con puntos suele bastar; si es una importación a otra base de datos, casi siempre conviene generar varios CSV relacionados por un identificador.

Validar antes de importar

Antes de cargar un CSV en producción comprueba cuatro cosas: que todas las filas tienen el mismo número de campos que la cabecera, que no hay filas vacías al final (un clásico de Excel), que los campos obligatorios no vienen en blanco y que el número de filas coincide con el esperado. Un awk -F, 'NF!=8 {print NR": "NF}' fichero.csv localiza en segundos las líneas descuadradas. Para validar direcciones de correo dentro de la columna correspondiente, el validador de email del sitio hace la comprobación sintáctica de cada registro.

Casos de uso comunes

  • Convertir una exportación de Excel o de un CRM en JSON para una API.
  • Preparar datos de una hoja de cálculo para sembrar una base de datos.
  • Transformar la respuesta JSON de una API en un CSV que abra el equipo de negocio.
  • Inspeccionar un CSV con campos entrecomillados sin romper columnas.
  • Normalizar codificación y separador de un fichero recibido de un tercero.

Buenas prácticas

  • Exporta y consume siempre en UTF-8; añade BOM sólo si el destino es Excel en Windows.
  • Trata como texto todo campo con ceros a la izquierda: códigos, DNI, IBAN, teléfonos.
  • Normaliza las fechas a ISO 8601 antes de convertir.
  • Comprueba que todas las filas tienen el mismo número de columnas que la cabecera.

Preguntas frecuentes

¿Por qué Excel abre mi CSV en una sola columna?

Porque el separador del fichero no coincide con el separador de listas de tu configuración regional. En España Excel espera punto y coma; usa Datos > Texto en columnas o exporta con `;`.

¿Cómo arreglo los acentos que salen como á?

Es UTF-8 interpretado como Windows-1252. Reabre el fichero indicando UTF-8 o conviértelo con `iconv`. Para que Excel lo detecte solo, exporta con BOM.

¿Puede un campo CSV contener comas?

Sí, siempre que vaya entre comillas dobles. Las comillas internas se duplican. Por eso no se puede parsear CSV partiendo por comas.

¿Se pierden los ceros a la izquierda?

Si el campo se convierte a número, sí y de forma irreversible. Manténlo como cadena en el JSON y como texto al abrirlo en la hoja de cálculo.

¿Se suben mis datos a un servidor?

No. Todo el parseo y la conversión ocurren en tu navegador, lo que hace la herramienta apta para ficheros con datos internos.