Saltar al contenido principal
Tooletto

CSV a JSON

Convierte datos CSV y TSV a JSON, con manejo adecuado de campos entrecomillados, comas incrustadas y saltos de línea. La inferencia de tipos opcional convierte números y booleanos en valores JSON reales.

  • Los archivos nunca salen de tu dispositivo
  • Gratis, sin registro
  • Sin marcas de agua
  • Funciona sin conexión una vez cargado
Loading tool…

Cómo csv a json

  1. 1

    Pega tu CSV

    Pega directamente desde una hoja de cálculo, o escríbelo.

  2. 2

    Establece las opciones

    Elige un delimitador, si la primera fila es un encabezado, y si se infieren tipos.

  3. 3

    Copia el JSON

    Copia el resultado o descárgalo como un archivo .json.

Por qué dividir por comas corrompe el CSV del mundo real

CSV parece trivial de analizar — dividir cada línea por comas, tratar la primera línea como encabezados — hasta que un valor en los datos reales contiene una coma propia, lo cual ocurre constantemente con exportaciones reales de hojas de cálculo: una dirección como "123 Main St, Apt 4", un nombre de empresa como "Smith, Jones & Co", o una descripción de producto que contiene una lista. La especificación CSV, formalizada como RFC 4180, maneja esto permitiendo que un campo se envuelva en comillas dobles, dentro de las cuales las comas, saltos de línea e incluso caracteres de comilla literal (escapados duplicándolos) son simplemente datos en lugar de estructura. Un analizador que ingenuamente divide por cada coma, ignorando las comillas por completo, corrompe exactamente esas filas — dividiendo "Smith, Jones & Co" en dos columnas separadas — y normalmente lo hace silenciosamente, sin ningún error que señale que algo salió mal, que es lo que hace peligroso este error en lugar de solo molesto.

El análisis correctamente consciente de las comillas rastrea si el lector está actualmente dentro de un campo entrecomillado e ignora los caracteres delimitadores y de salto de línea hasta llegar a la comilla de cierre, que es la única forma de reconstruir correctamente campos que legítimamente contienen los caracteres que de otro modo se confundirían con estructura.

Lo que la inferencia de tipos acierta y dónde deliberadamente se contiene

Cada valor en un archivo CSV crudo es texto, ya que CSV no tiene ningún concepto nativo de número, booleano o nulo — una celda que contiene `42` y una celda que contiene `hello` se almacenan de forma idéntica como caracteres. La inferencia de tipos es el proceso de adivinar qué cadenas estaban "realmente" destinadas a ser números, valores verdadero/falso o nulos, y convertirlas en consecuencia para que el JSON resultante tenga valores realmente tipados en lugar de que todo esté envuelto en comillas como una cadena.

Sin embargo, la conjetura tiene que ser conservadora, porque bastantes valores que parecen numéricos no están destinados a tratarse como números en absoluto. Un cero a la izquierda — `007`, `042` — normalmente señala un identificador o un código con relleno donde el cero inicial es significativo y se destruiría silenciosamente al convertirse a un número, ya que `7` y `007` son el mismo número pero identificadores muy distintos. Un número de teléfono como `+44 20 7946 0958` parece parcialmente numérico pero no son datos aritméticos. Los valores más allá del rango entero seguro de JavaScript pierden precisión si se convierten a un número en absoluto. Esta herramienta deja todos esos como cadenas específicamente porque adivinar mal aquí significa corromper datos silenciosamente de una forma fácil de pasar por alto hasta mucho después.

Por qué los encabezados de columna duplicados y en blanco necesitan manejo especial

Un objeto JSON no puede tener dos claves con el mismo nombre — la segunda encontrada simplemente sobrescribe la primera, descartando silenciosamente el valor de toda una columna sin ningún error levantado en ningún sitio. Las exportaciones de hojas de cálculo producen encabezados duplicados con más frecuencia de lo que parece probable: un informe con dos columnas "Total" con alcances distintos, o una exportación fusionada de dos fuentes que resultan usar ambas "Nombre". Detectar duplicados y renombrar la segunda aparición a `name_2` preserva los datos de cada columna en lugar de perder silenciosamente cualquiera que resultara aparecer primero en el objeto de fila. Los encabezados en blanco reciben el mismo tratamiento por la misma razón, ya que JSON no tiene forma de representar una clave que sea simplemente una cadena vacía como un campo significativo y direccionable.

Preguntas frecuentes

¿Maneja comas dentro de campos entrecomillados?

Sí. El analizador sigue correctamente RFC 4180: los campos entrecomillados pueden contener comas, saltos de línea y comillas escapadas (escritas como ""). Las herramientas que dividen por comas corrompen exactamente este tipo de datos, normalmente sin ningún error.

¿Qué le hace la inferencia de tipos a los ceros a la izquierda?

Los deja intactos. `007`, `+44` y valores más allá del rango entero seguro de JavaScript permanecen como cadenas, porque casi siempre son ID, números de teléfono o códigos postales — convertirlos a números destruiría datos silenciosamente. Solo los números, booleanos y nulos sin ambigüedad se convierten.

¿Qué pasa con los nombres de columna duplicados?

Se vuelven únicos — una segunda columna `name` se convierte en `name_2` — porque dos claves idénticas en un objeto JSON se sobrescribirían silenciosamente entre sí. Los encabezados en blanco se convierten en `column_1`, `column_2` y así sucesivamente.

¿Puedo convertir un archivo de Excel directamente?

Todavía no — primero guárdalo o expórtalo como CSV (Archivo → Guardar como → CSV en Excel y Google Sheets). Ten en cuenta que las instalaciones europeas de Excel a menudo usan un delimitador de punto y coma; cambia la opción de delimitador si tus columnas salen fusionadas.

¿Se suben mis datos?

No. El análisis funciona por completo en tu navegador, lo que importa porque las exportaciones CSV suelen contener exactamente los datos de clientes, financieros o de empleados que no deberías pegar en el servidor de otra persona.

Tareas habituales de csv a json