Conversor de CSV a JSON y de JSON a CSV

Convierte CSV a JSON y al revés: comillas, cualquier separador, datos anidados.

Desactivado por defecto: todo queda como texto, así que algo como 007 no se altera.

Qué hace esta herramienta

Convierte una tabla en formato CSV en JSON, y JSON de vuelta en tabla, sin enviar los datos a ningún sitio. Un CSV es solo texto con un registro por línea y un separador entre valores; es fácil de producir y sorprendentemente difícil de leer bien: los valores pueden contener el propio separador, comillas e incluso saltos de línea. Este conversor sigue la especificación de CSV (RFC 4180) y es tolerante con los archivos desordenados que producen hojas de cálculo y exportaciones reales.

Convertir CSV a JSON

  1. Pega el CSV, o abre o suelta un archivo.
  2. Deja el "Separador" en automático. La herramienta mira las primeras filas y elige la coma, el punto y coma, el tabulador o la barra vertical que las divide siempre en el mismo número de columnas. Excel guarda con punto y coma en muchas configuraciones regionales de Europa y Latinoamérica, por eso importa acertar.
  3. Mantén "La primera fila es el encabezado" para obtener una lista de objetos con el nombre de cada columna, o desmárcala, o elige "Lista de listas", para obtener listas simples de valores.
  4. Decide si convertir. Por defecto cada valor queda como texto, tal como está escrito. Marca "Convertir números, true/false y celdas vacías" y 42 pasa a número, true a booleano y una celda vacía a null. Los números conservan su texto exacto: 1.50 sigue siendo 1.50.
  5. Copia el JSON o descárgalo.

Convertir JSON a CSV

Pega una lista de objetos, una lista de listas o un solo objeto. Las columnas son todas las claves que aparecen en algún registro, en el orden en que aparecen por primera vez; un registro sin una clave deja la celda vacía. Los datos anidados se aplanan con una regla documentada: una clave dentro de un objeto pasa a ser la ruta unida con puntos, así {"user": {"name": "An"}} da una columna user.name, y los elementos de una lista se numeran: tags da tags.0 y tags.1. Si prefieres, puedes dejar toda una lista como texto JSON en una celda. Las celdas con el separador, comillas o saltos de línea se ponen entre comillas, duplicando las comillas, como exige el estándar.

Ejemplo

Este CSV tiene un valor entre comillas con una coma y una celda vacía:

name,age,city
An,34,"Ha Noi, VN"
Binh,,Hue

Con la configuración por defecto, el resultado es una lista de dos objetos con todos los valores como texto, así que la edad de Binh es una cadena vacía. Con la conversión activada, la edad de An pasa a ser el número 34 y la de Binh null. En sentido contrario, el JSON {"id": 1, "user": {"name": "An"}, "tags": ["a", "b"]} da las columnas id, user.name, tags.0 y tags.1 con los valores 1, An, a y b.

Por qué la conversión está desactivada por defecto

Las hojas de cálculo convierten texto en números sin avisar y estropean datos: un código postal 01234 pierde el cero, un número de tarjeta o de pedido de 16 dígitos pasa a notación científica, un código como 1E5 se vuelve 100000. Esta herramienta no adivina salvo que se lo pidas. Incluso con la conversión activa, un valor con cero a la izquierda, o un entero de más de 15 dígitos, sigue como texto porque JavaScript no puede guardarlo con exactitud.

Errores habituales

  • Separador equivocado. Todo cae en una sola columna. Deja el modo automático o elige el separador a mano.
  • Las tildes salen mal en Excel. Excel necesita una marca BOM para reconocer UTF-8. Marca "Añadir marca BOM" al convertir a CSV para Excel.
  • Una celda que empieza por = + - o @. Excel la trata como fórmula al abrir el archivo. Revisa los datos de fuentes no fiables antes de abrirlos en una hoja de cálculo.
  • Comillas sin cerrar. Una comilla suelta puede tragarse el resto del archivo. La herramienta avisa e indica la línea.

Límites

Entrada de hasta 5 millones de caracteres o 10 MB si es un archivo. El cuadro de resultado muestra los primeros 200 000 caracteres de resultados muy grandes; copiar y descargar siempre incluyen todo. Las fechas no se convierten: siguen como texto.

Preguntas frecuentes

¿Se suben mis datos?

No. La conversión se hace en tu navegador; el archivo se lee en tu dispositivo y no se envía a ningún sitio.

¿Cómo averigua el separador?

Divide las primeras filas con cada candidato (coma, punto y coma, tabulador y barra vertical), ignora los que están entre comillas y elige el que da el mismo número de columnas en más filas. Siempre puedes elegir uno tú.

¿Cómo se convierten a columnas los objetos y listas anidados?

Las claves anidadas se unen con puntos (address.city) y los elementos de lista se numeran (tags.0, tags.1). Elige "Mantener como JSON en una celda" para no aplanar las listas.