Conversor de CSV y JSON
Convierte CSV en un array JSON de objetos o arrays, o JSON de vuelta a CSV. Detecta el separador y lee archivos de Excel con punto y coma y coma decimal.
Ejemplos de código
Copia estos ejemplos en tu propio proyecto. Cada uno usa solo la biblioteca estándar del lenguaje, así que no hay nada que instalar.
const text = 'name,city\nAnn,Utrecht\nBob,"Den Haag, NL"\n'
const trimmed = text.trimEnd()
const records = [[]]
for (const match of trimmed.matchAll(/("(?:[^"]|"")*"|[^,\n]*)(,|\n|$)/gu)) {
if (match.index === trimmed.length) break
const [, field, end] = match
records.at(-1).push(field.startsWith('"') ? field.slice(1, -1).replaceAll('""', '"') : field)
if (end === '\n') records.push([])
}
const [header, ...rows] = records
const objects = rows.map((row) => Object.fromEntries(header.map((name, i) => [name, row[i]])))
console.log(JSON.stringify(objects))Qué hace
Convierte CSV en un array JSON y JSON de vuelta a CSV. Lee CSV según la RFC 4180: campos entre comillas, comillas dobles y saltos de línea dentro de un campo.
Cómo se usa
- Pega CSV o JSON, o suelta un archivo.
- Elige CSV a JSON o JSON a CSV. Deja separador y decimales en Detectar, o ajústalos tú.
- Copia o descarga el resultado, o usa Usar salida como entrada para convertirlo en la siguiente entrada.
Ejemplos
El CSV nombre;precio / queso;12,50 se convierte en [{"nombre": "queso", "precio": 12.5}], y con Fila de encabezado desactivada, en [["nombre", "precio"], ["queso", 12.5]].
Conviene saber
- Con la fila de encabezado, cada fila pasa a ser un objeto con los nombres de columna como claves; una fila con otro número de campos se señala con su número de fila.
- El separador se detecta en las primeras filas: coma, punto y coma, tabulador o barra vertical. Excel en español escribe puntos y coma y comas decimales, que Detectar lee como 12.5.
- Un valor solo pasa a número si se lee de vuelta igual, así que
007,1.50y los números muy largos siguen siendo texto. Desactiva la lectura de números para mantener todo como texto. - JSON a CSV necesita un array de objetos (las columnas son la unión de las claves) o un array de arrays. Los valores anidados se escriben como texto JSON.
¿Cómo se lee un archivo CSV?
Según la RFC 4180: los campos se separan con un separador, un campo entre comillas puede contener ese separador y saltos de línea, y una comilla dentro se escribe dos veces. El separador se detecta en las primeras filas: coma, punto y coma, tabulador o barra vertical.
Preguntas frecuentes
¿Por qué mis números pasan a texto, o al revés?
Un valor solo pasa a número si se lee de vuelta exactamente igual, así que 007, 1.50 y los números muy largos siguen siendo texto. Desactiva «Leer números y true/false» para mantener todo como texto.
¿Qué es el formato de Excel en español?
Excel en España escribe puntos y coma entre campos y una coma como marca decimal. Con separador o decimales en «Detectar», 12,50 se lee como 12.5, y JSON a CSV escribe un archivo con punto y coma si eliges la coma decimal.
¿Se envían mis datos a algún sitio?
No. La conversión ocurre en tu navegador. Lo que pegas nunca se envía a nuestros servidores.