Convertir CSV a JSON
Pasa una tabla a JSON y al revés, con el separador español y los acentos en su sitio.
- Tus archivos no salen de tu dispositivo
- Gratis y sin registro
- Sin instalar nada
- Sin marcas de agua
El CSV es el formato con el que hablan entre sí los programas de gestión, las hojas de cálculo y las herramientas de contabilidad. El JSON es el formato con el que hablan las aplicaciones web y las APIs. Convertir de uno a otro es un trámite constante y, sin embargo, se rompe con una facilidad sorprendente: por un separador, por un acento o por una comilla mal interpretada.
Por qué un CSV español no es un CSV cualquiera
La sigla significa comma separated values, valores separados por comas, pero en España casi nunca se separan por comas. Con la configuración regional española, Excel usa la coma como separador decimal, así que para no montar un lío emplea el punto y coma para separar columnas. El resultado es que la mitad de los archivos que la gente llama CSV en realidad son semicolon separated values.
Por eso aquí no te preguntamos el separador antes de empezar: analizamos las primeras líneas y elegimos el candidato que produce un número de columnas constante. Coma, punto y coma, tabulador y barra vertical entran en el sorteo, y siempre puedes corregir la elección con el selector.
Las comillas, donde se rompe casi todo
Un conversor ingenuo parte cada línea por el separador y ya está. Funciona hasta que un campo contiene el propio separador, que es lo que ocurre con las direcciones, los nombres de empresa y cualquier texto libre. La convención, recogida en el RFC 4180, es rodear ese campo con comillas dobles; dentro, una comilla literal se escribe duplicándola.
Nuestro analizador recorre el archivo carácter a carácter en lugar de trocear por líneas, de modo que respeta las comas encerradas, las comillas dobladas y hasta los saltos de línea dentro de un campo entrecomillado, que son legales y despistan a casi todo el mundo. Una sutileza más: una comilla solo abre campo si aparece al principio, así que un valor como Ana "la jefa" Ruiz llega entero al otro lado en vez de descuadrar la fila.
Qué tipos convertimos y cuáles no
Con la conversión de tipos activada, los números pasan a números y true o false pasan a booleanos, para que el JSON sea directamente utilizable. Pero hay dos casos en los que convertir sería destruir información y los dejamos como texto:
- Los ceros a la izquierda. Códigos postales, números de cuenta, referencias de producto. El
01001de Vitoria no es el número mil uno. - Los identificadores muy largos. Más allá de dieciséis dígitos, un número en JavaScript empieza a redondear. Un identificador redondeado es un identificador equivocado, y el error no se nota hasta mucho después.
Si prefieres controlar tú la conversión aguas abajo, desactiva la casilla y todos los valores saldrán como cadenas de texto.
Cabeceras repetidas y filas incompletas
Los exports del mundo real vienen con sorpresas. Si dos columnas se llaman igual, la segunda recibe un sufijo numérico en lugar de pisar a la primera, que es lo que haría un objeto de JavaScript sin más. Si una fila trae menos campos que la cabecera, las claves que faltan quedan vacías en vez de desplazar los valores una posición.
Del JSON de vuelta al CSV
Al convertir en sentido contrario, el problema es el opuesto: los objetos JSON no tienen por qué compartir las mismas claves. Recorremos el conjunto entero para reunir todas las que aparecen y respetamos el orden en el que se ven por primera vez, así que las columnas salen completas y previsibles. Los valores que contienen el separador, comillas o saltos de línea se entrecomillan al estilo de Excel, y el archivo se descarga con BOM para que los acentos lleguen intactos a la hoja de cálculo.
Cuándo conviene cada formato
Si el destino es una hoja de cálculo, un gestor de facturación o una importación de contactos, quédate con el CSV: es plano, ligero y lo entiende cualquier programa desde hace cuarenta años. Si el destino es una web, una aplicación móvil o una llamada a una API, pásalo a JSON: admite jerarquía, distingue el número del texto y no depende de la configuración regional de quien abra el archivo. La conversión en un sentido u otro suele ser el primer paso de cualquier migración de datos.
Cómo usarlo en 3 pasos
- 1Elige tu herramientaBusca lo que necesitas hacer. Cada herramienta va directa al grano.
- 2Suelta el archivoArrástralo o búscalo en tu equipo. El trabajo lo hace tu propio navegador.
- 3Descarga el resultadoListo en segundos, sin marcas de agua y sin dejar rastro en ningún servidor.
Preguntas frecuentes
¿Se sube el archivo a algún sitio?
No. Todo se procesa en tu navegador con JavaScript, así que puedes convertir un listado de clientes o un export de nóminas sin que esos datos salgan de tu ordenador. Es la diferencia práctica entre usar esta página y pegar la tabla en un conversor que trabaje en su servidor.
¿Qué separador debo elegir?
Ninguno: lo detectamos contando cuál de los cuatro candidatos aparece de forma más regular en las primeras líneas. Si el resultado no cuadra, cámbialo a mano. En España el Excel guarda con punto y coma porque la coma está ocupada haciendo de separador decimal.
¿Respeta las comas que van dentro de un campo?
Sí, siempre que estén entre comillas, que es como manda el estándar RFC 4180. «Madrid, España» entre comillas es un solo campo; también soportamos comillas dobladas para escribir una comilla literal y saltos de línea dentro de un campo entrecomillado.
¿Por qué mi código postal 01001 no se convierte en número?
Porque lo dejamos como texto a propósito. Un cero por delante es información, no un adorno, y convertirlo a número lo destruiría. La misma regla protege los identificadores largos, que perderían precisión al pasar por un número de coma flotante.
¿Puedo hacer el camino contrario, de JSON a CSV?
Sí, con el selector de arriba. Recorremos todos los objetos para reunir el conjunto completo de claves, de forma que un objeto al que le falte un campo no descoloque las columnas, y escapamos los valores al estilo de Excel.
¿El CSV descargado se abre bien en Excel?
Sí. Le ponemos delante una marca de orden de bytes (BOM) para que Excel entienda que el archivo está en UTF-8. Sin ese detalle, los acentos y las eñes aparecen como símbolos raros, que es el motivo número uno de los CSV rotos en España.