Conversor CSV ↔ JSON

Convierte CSV en un array JSON de objetos y viceversa — admite campos entre comillas y delimitadores de punto y coma o tabulación, todo en tu navegador.

1.104 visitas

Cómo Funciona Realmente la Conversión

CSV y JSON modelan los datos de forma distinta, y la dirección en la que conviertes determina cuánto haya que adivinar. CSV → JSON es casi mecánico: la fila de cabecera se convierte en el conjunto de claves, y cada fila siguiente se convierte en un objeto con esas claves — nombre,edad sobre Ada,36 se convierte en [{"nombre":"Ada","edad":"36"}]. Los campos entre comillas que contienen comas, las comillas escapadas ("") y las celdas con varias líneas se analizan según la RFC 4180, y el delimitador (coma, punto y coma o tabulador) se detecta automáticamente a partir de la primera línea.

JSON → CSV es donde vive la dificultad real. CSV es estrictamente plano — una fila, un registro, un valor por celda — mientras que JSON admite de forma natural el anidamiento: un objeto puede contener otro objeto o un array como valor de un campo, y no existe una forma universalmente aceptada de comprimir eso en una sola celda CSV. Toma {"nombre":"Ada","direccion":{"ciudad":"Londres"}} — ¿debería la columna llamarse direccion.ciudad (notación de punto, aplanando el objeto anidado en columnas adicionales), o debería incrustarse el valor completo de direccion como una cadena JSON en bruto dentro de una celda, como {"ciudad":"Londres"}? Ambos enfoques se usan en la práctica y ninguno es "el" estándar; esta herramienta opta por la notación de punto para un nivel de anidamiento y recurre a incrustar texto JSON para arrays y estructuras más profundas, porque así los objetos simples siguen siendo realmente compatibles con hojas de cálculo sin perder datos silenciosamente en los complejos.

Vale la pena interiorizar esto: no es una carencia de la herramienta, es una carencia del propio modelo de datos. Cualquier conversor CSV↔JSON que pruebes — este incluido — tiene que tomar una decisión editorial sobre el aplanamiento, porque los dos formatos nunca se diseñaron para ser perfectamente intercambiables. CSV se creó para libros contables tabulares; JSON se creó para documentos de forma arbitraria. Saber esto de antemano explica por qué hacer ida y vuelta de un archivo JSON complejo a través de CSV rara vez reproduce exactamente la estructura original, y por qué mantener los datos profundamente anidados en formato JSON suele ser simplemente la decisión correcta y no una limitación que sortear.

Lo Que Vale la Pena Saber

  • CSV no tiene tipos de datos. Cada valor va y vuelve como texto a menos que actives la conversión de números, que convierte las cadenas con aspecto numérico en números JSON reales (dejando los IDs con ceros a la izquierda como "007" en forma de texto, ya que convertirlos los corrompería).
  • El delimitador se detecta automáticamente, no se asume. Excel exporta con punto y coma en muchas configuraciones regionales europeas y turcas, porque allí la coma ya es el separador decimal — el analizador revisa la fila de cabecera para elegir el correcto.
  • JSON → CSV une todas las claves de todos los objetos. Si algunos registros tienen un campo que otros no tienen, la cabecera incluye cada clave vista en cualquier parte del array, y las que faltan se dejan en blanco en esa fila.
  • Nada sale de tu navegador. El análisis y la conversión ocurren ambos localmente en JavaScript, así que pegar una exportación sensible no la envía a ningún sitio.
  • El orden de las filas se conserva en ambos sentidos. La primera fila de datos sigue siendo la primera tras la conversión en cualquier dirección, algo que importa cuando una hoja de cálculo o un script posterior depende del orden posicional en lugar de una clave de ordenación explícita.

Preguntas Frecuentes

¿Por qué todos mis números aparecen como texto?

CSV no tiene tipos de datos — todo es texto. Activa la opción "convertir números" para que los valores numéricos pasen a ser números JSON (los IDs con ceros a la izquierda se mantienen como texto, ya que convertirlos los corrompería silenciosamente).

Mi CSV de Excel usa punto y coma, ¿funcionará?

Sí — el delimitador se detecta a partir de la primera fila. Muchas configuraciones regionales de Excel en Turquía y Europa exportan con punto y coma porque allí la coma ya es el separador decimal.

¿Qué ocurre con el JSON anidado?

CSV es plano: los objetos o arrays anidados se serializan como cadenas JSON dentro de la celda, o se aplanan en columnas de notación de punto para objetos poco profundos. Para datos muy anidados, aplánalos antes o consérvalos en JSON en lugar de forzarlos por una hoja de cálculo.

¿Por qué esta herramienta no elige simplemente un estándar para aplanar el JSON anidado?

Porque no existe uno — los distintos ecosistemas realmente no se ponen de acuerdo. Las columnas con notación de punto (direccion.ciudad) mantienen legible en hoja de cálculo el anidamiento simple pero multiplican las columnas rápidamente; incrustar el valor anidado como una cadena JSON en bruto mantiene una columna por campo pero exige volver a analizar esa celda después. Esta herramienta usa notación de punto para objetos poco profundos y recurre a texto JSON incrustado para arrays y anidamientos más profundos.

¿Qué pasa con un array dentro de un objeto durante la conversión de JSON a CSV?

Se serializa como texto JSON dentro de una sola celda en lugar de repartirse entre columnas — los arrays pueden tener cualquier longitud, así que no hay un número fijo de columnas que asignarles. Copia el contenido de esa celda y analízalo por separado si necesitas extraer los elementos individuales.

Comentarios

Aún no hay comentarios — ¡sé el primero en escribir uno!

Herramientas Similares