Convertidor de CSV a JSON

Pega CSV (o TSV) a la izquierda y obtén un array JSON de objetos a la derecha. Encabezados auto-detectados, tipos numéricos y booleanos automáticos. Sin subida.

  1. Pega tu CSV en el área de texto izquierda.
  2. Haz clic en "Convertir a JSON". La primera fila se trata como encabezados.
  3. Copia el array JSON o descárgalo como data.json.
  4. TSV (separado por tabulaciones) y otros delimitadores son detectados automáticamente por PapaParse.
¿Qué hace?

Analiza CSV (estilo RFC 4180) en un array JSON donde cada clave coincide con una columna del encabezado. Campos entre comillas, comas embebidas, comillas dobles escapadas y finales de línea CRLF / LF se manejan correctamente. Números, booleanos y valores tipo null ("true", "false", vacío) se tipan automáticamente. El delimitador se auto-detecta — puedes pegar TSV, datos separados por punto y coma o por barra vertical y seguirá funcionando.

Ejemplo

Entrada CSV:

name,age,role
Ada,36,engineer
Grace,40,scientist

Salida JSON:

[
  {"name": "Ada", "age": 36, "role": "engineer"},
  {"name": "Grace", "age": 40, "role": "scientist"}
]

Errores comunes de CSV y cómo manejarlos

CSV parece simple pero tiene más casos extremos de los que la gente espera. Estos son los patrones que producen salidas sorprendentes.

  • Comas embebidas sin comillas. Un campo como `Smith, John` (sin comillas) se divide en dos columnas. Envuélvelo en comillas dobles: `"Smith, John"`.
  • Comillas dobles dentro del campo. Dentro de un campo entre comillas, una `"` literal se escapa duplicándola: `"He said ""hi"""` decodifica a `He said "hi"`. El escape con barra invertida (`\"`) no es estándar y no se admite.
  • Conteo de columnas inconsistente. Las filas con menos columnas que el encabezado obtienen null para las claves faltantes; las filas con más columnas se reportan como advertencia de parseo. La conversión se completa, pero revisa la salida.
  • IDs numéricos que pierden ceros iniciales. `007` se parsea como el número 7, no la cadena "007". Si los ceros iniciales importan (códigos postales, teléfonos), pre-procesa entrecomillando el campo — los valores entre comillas pueden parsearse como cadenas si desactivas el tipado dinámico aguas abajo.
  • BOM al inicio del archivo. Los CSV guardados desde Excel suelen incluir una marca de orden de bytes UTF-8 (`\uFEFF`) al inicio. El parser la elimina, pero si pegas bytes crudos desde un editor hexadecimal puedes ver el BOM como un carácter extraño en el primer encabezado.
  • Finales de línea mezclados. Se reconocen CRLF (Windows), LF (Unix) y CR (Mac antiguo). Si tu salida parece una única fila gigante, puede que el archivo no tenga saltos de línea — común cuando el CSV se genera concatenando sin `\n`.
Preguntas frecuentes

¿Soporta valores separados por tabulación (TSV)?

Sí. PapaParse auto-detecta el delimitador en el primer kilobyte. Tabs, puntos y comas, barras verticales y comas funcionan sin configuración. Si la detección elige el delimitador equivocado (raro en datos reales), separa mejor los campos o pre-procesa.

¿Qué pasa si mi CSV no tiene encabezado?

La configuración actual asume que la primera fila son encabezados. Si tu CSV no los tiene, antepón una fila sintética como `a,b,c` antes de pegar — o convierte con `header: false` en PapaParse desde la línea de comandos si necesitas array de arrays.

¿Cómo se manejan las fechas?

Se mantienen como cadenas. El parser solo auto-tipa números y booleanos — el parseo de fechas no se hace intencionalmente porque la ambigüedad de formato (`01/02/03` es 2 de enero en EE. UU., 1 de febrero en Reino Unido) es demasiado arriesgada. Procésalas aguas abajo donde conozcas la convención de origen.

¿Puedo convertir archivos CSV muy grandes?

Hasta unos 50 MB antes de que el navegador se vuelva lento. El cuello de botella es el área de texto, no el parser — para archivos mayores ejecuta PapaParse en línea de comandos. La biblioteca es la misma.

¿Mi CSV se sube a algún sitio?

No. Todo se ejecuta en tu navegador — los datos se parsean con JavaScript en esta página y nunca se envían a ningún servidor. Verifícalo en las herramientas de desarrollador: cero peticiones de red al hacer clic en Convertir.

¿Cómo obtengo JSON con otra forma (anidado, agrupado)?

Esta herramienta produce un array plano de objetos planos — eso es lo que CSV representa. Para estructuras anidadas, post-procesa la salida con un script (agrupar por columna, transformar nombres con prefijos, etc.). Intentar codificar jerarquía en CSV suele causar más problemas que los que resuelve.