DataSwap Conversores de archivos y datos rápidos, sin registro

Conversor de CSV a JSON

Pega tu CSV abajo — la primera fila se usa como encabezados. Los campos entre comillas con comas, saltos de línea y comillas escapadas incrustados se analizan correctamente, sin dividir de forma ingenua. Nada de lo que pegues sale de tu navegador.

Por qué importa un analizador de CSV real

El CSV parece simple — dividir por comas, dividir por saltos de línea, listo — hasta que un campo contiene una coma. La especificación de CSV responde envolviendo ese campo en comillas dobles, y escapando cualquier comilla literal dentro con el doble (""). Un campo incluso puede contener un salto de línea real siempre que esté entre comillas. Un analizador ingenuo con split(",") no sabe nada de esto: trata cada coma como un límite de columna, así que un solo campo entre comillas como "Smith, John" se corta en dos columnas y todos los campos posteriores en esa fila se desalinean — corrupción silenciosa, no un error. Esta herramienta en cambio lee la entrada un carácter a la vez, rastreando si está actualmente dentro de un campo entre comillas, así que las comas y saltos de línea entre comillas se mantienen como parte del campo al que pertenecen.

Además, esta página usa punto y coma como delimitador predeterminado en vez de coma. No es un capricho: en español (y en la mayoría de los locales europeos) la coma ya está ocupada como separador decimal — 3,14 es pi, no dos columnas separadas. Por eso Excel en español exporta CSV con punto y coma de forma predeterminada, y esta herramienta refleja esa misma convención para que pegues tus exportaciones tal cual sin tener que cambiar el selector cada vez.

Ejemplo práctico

Entrada:

nombre;ciudad
"Smith; John";"Nueva York"
"O""Brien";Boston

La primera fila tiene un punto y coma dentro de un nombre entre comillas — un analizador ingenuo lo leería como cuatro columnas en vez de dos y arruinaría el resto de la tabla. La segunda fila tiene una comilla escapada "", que debe colapsar a una sola comilla literal ". Esta herramienta produce:

[
  {
    "nombre": "Smith, John",
    "ciudad": "Nueva York"
  },
  {
    "nombre": "O\"Brien",
    "ciudad": "Boston"
  }
]

— dos filas limpias, el punto y coma incrustado conservado como parte del nombre, y O""Brien correctamente colapsado a un solo O"Brien.

Preguntas frecuentes

¿Por qué no simplemente dividir cada línea por comas?

Porque el CSV real permite una coma dentro de un campo, siempre que el campo esté envuelto en comillas dobles — un nombre como "Smith, John" es un solo campo, no dos. Un split(",") ingenuo partiría ese campo por la mitad y desplazaría todas las columnas posteriores fuera de alineación durante el resto de la fila. Esta herramienta usa un analizador real carácter a carácter que rastrea si está actualmente dentro de un campo entre comillas, así que una coma ahí es solo texto, no un delimitador.

Mi CSV usa punto y coma en vez de comas, ¿esto funciona igual?

Sí — usa el selector de delimitador encima del campo de entrada para cambiar entre coma, punto y coma y tabulación. Por eso, además, esta página usa punto y coma como opción predeterminada: es el formato de exportación habitual de Excel en español, precisamente porque en este locale la coma ya se usa como separador decimal (así que "3,14" significa pi, no dos valores) — un archivo delimitado por comas sería genuinamente ambiguo ahí.

¿Qué pasa si una fila tiene más o menos campos que la fila de encabezado?

No se bloquea ni desalinea tus datos en silencio. Si una fila es corta, los campos finales faltantes se rellenan como cadenas vacías. Si una fila tiene campos extra más allá del último encabezado, esos extras se descartan. Cuando esto ocurre en cualquier parte de tu archivo, aparece una nota encima de la salida indicando cuántas filas se vieron afectadas, para que puedas revisar la fuente.

¿Se sube mi CSV a algún servidor?

No. El análisis ocurre por completo en tu navegador con JavaScript normal — nada de lo que pegues se envía, se guarda ni se registra en ningún servidor. Es la misma regla para cada herramienta de este sitio.