Saltar al contenido principal

CSV to JSON

Convierte filas CSV en una lista JSON de objetos.

Entrada CSV

Lín 1, Col 1
CSV

Resultado

Tu resultado aparecerá aquí

Añade CSV arriba y elige Convertir.

Añade CSV a la izquierda y elige Convertir.

Esperando entrada

2 espacios

Convierte CSV a una lista JSON de objetos, con la fila de encabezado como claves. Detecta coma, punto y coma o tabulación y deja los valores como texto.

¿Qué es CSV to JSON?

CSV to JSON es una herramienta en línea gratuita que convierte texto CSV, en tu navegador, en una lista JSON de objetos, uno por fila, usando la primera fila como nombres. Lee texto separado por comas, punto y coma o tabuladores, sigue las reglas de comillas de la RFC 4180 y mantiene cada valor como texto simple, sin adivinar tipos.

O convierte todas las filas, o se niega y te dice qué línea no encaja.

Qué admite

  • Texto CSV sencillo: primero una fila de encabezado y después una fila por registro, con el mismo número de campos en todas las filas.
  • El separador se detecta a partir de la fila de encabezado: una coma, un punto y coma o un tabulador, el que aparezca más veces fuera de las comillas dobles (la coma si hay empate). El mismo separador vale para todas las filas.
  • Un campo puede ir entre comillas dobles. Entre comillas, un separador, un salto de línea y unas comillas dobles escritas como dos comillas dobles son todos texto normal. Unas comillas dobles en medio de un campo sin comillas, como en 5" pipe, se conservan tal cual.
  • Las filas pueden terminar con un salto de línea, con un retorno de carro seguido de un salto de línea o con un retorno de carro solo. Las líneas en blanco y el último salto de línea se omiten, y una marca de orden de bytes al principio se ignora.
  • La primera fila da los nombres, en el orden de las columnas. Todo valor es un texto JSON tal como aparece en el CSV, así que 007, 1.50 y true siguen siendo texto y una celda vacía es un texto vacío. Un encabezado sin filas debajo da una lista vacía, [].
  • Un nombre que se repite recibe _2, _3 y así sucesivamente, y un nombre vacío se llama column_ seguido de su posición. Ambos generan un aviso, y los nombres nuevos nunca chocan con un nombre que ya existe.
  • El resultado es una lista JSON, escrita con la sangría que elijas, 2 o 4 espacios.

Conviene saber

  • Los tipos no se adivinan. Los números, true, false y las celdas vacías siguen siendo texto, porque un CSV no dice qué tipo tiene una columna. Conviértelos en el programa que lee el JSON si necesitas números de verdad.
  • La primera fila es siempre el encabezado. Si tu archivo no tiene fila de encabezado, su primer registro pasa a ser los nombres.
  • Se rechaza una fila con más o menos campos que el encabezado, y lo mismo ocurre con un campo entre comillas que nunca se cierra y con texto justo después de las comillas de cierre. El mensaje indica la línea del problema. No se repara, rellena ni recorta nada.
  • Solo se usa un separador en todo el archivo. Si un archivo mezcla puntos y comas con comas entre los campos, gana el más frecuente en la fila de encabezado, y se rechazan las filas que dejan de encajar.
  • Esta herramienta lee texto CSV, no archivos de hoja de cálculo como .xlsx. Exporta la hoja como CSV antes.
  • Una tabla grande puede dar un resultado mayor que la entrada, porque cada valor recibe comillas y un nombre. Si supera el límite de tamaño, se rechaza con una vista previa incompleta (mira abajo).

¿Cómo se usa CSV to JSON?

  1. Pega o escribe tu CSV en el cuadro de entrada. La primera fila debe contener los nombres de las columnas. No se ejecuta nada mientras escribes.
  2. Elige la sangría («2 espacios» o «4 espacios») y pulsa «Convertir».
  3. Lee el JSON junto a tu entrada. Si el nombre de una columna se repite o está vacío, un aviso en el área del resultado explica cómo se renombró. Si se rechaza la conversión, el mensaje explica el motivo e indica la línea.
  4. Pulsa «Copiar» para poner el JSON en el portapapeles, o «Descargar» para guardarlo como converted.json.

Ejemplos

Una tabla con encabezado

Pega este CSV y pulsa «Convertir». La primera fila da los nombres y cada una de las demás filas se convierte en un objeto. Todo valor es texto, incluso los números, por eso «1» se escribe entre comillas.

id,name,city
1,Ada Lovelace,London
2,Grace Hopper,New York
[
  {
    "id": "1",
    "name": "Ada Lovelace",
    "city": "London"
  },
  {
    "id": "2",
    "name": "Grace Hopper",
    "city": "New York"
  }
]

Una fila con campos de menos

La última fila tiene un campo, pero el encabezado tiene dos, así que la herramienta se niega en lugar de adivinar qué valor falta. El mensaje indica la línea de la fila, que aquí es la línea 3.

id,name
1,Ada
2

Esta fila tiene un número de campos distinto al de la fila de encabezado. Todas las filas necesitan el mismo número de campos. Busca un delimitador que falte o sobre, o un campo que contenga un delimitador o un salto de línea y no esté entre comillas dobles.

Línea 3, columna 1

Punto y coma y comillas

Los programas de hoja de cálculo configurados en portugués o en español suelen guardar el CSV con punto y coma, y la herramienta detecta el separador por sí sola. La coma dentro de «Café, moído» forma parte del valor porque el valor está entre comillas dobles. «001» conserva los ceros a la izquierda y «12,50» sigue siendo texto.

código;descrição;preço
001;"Café, moído";12,50
002;Pão;7,90
[
  {
    "código": "001",
    "descrição": "Café, moído",
    "preço": "12,50"
  },
  {
    "código": "002",
    "descrição": "Pão",
    "preço": "7,90"
  }
]

Un nombre de columna repetido

Dos columnas se llaman «name». Los nombres JSON deben ser únicos, así que la segunda se renombra name_2 y un aviso lo indica. Un nombre de columna vacío se llama column_ seguido de su posición, como column_1, y también genera un aviso.

name,name
Ada,Lovelace
[
  {
    "name": "Ada",
    "name_2": "Lovelace"
  }
]

Un nombre de columna de la fila de encabezado repite uno anterior. Se renombró añadiendo _2, _3 y así sucesivamente, para que cada clave JSON siga siendo única.

Límites y privacidad

Límites de tamaño

  • Entrada: hasta 2.000.000 bytes de texto en UTF-8 (unos 2 MB). Las letras acentuadas y los emojis ocupan más de un byte cada uno. Una entrada mayor se rechaza.
  • Resultado: también hasta 2.000.000 bytes. Si el resultado completo fuera mayor, la herramienta muestra solo una vista previa incompleta de los primeros 100.000 bytes, y esa vista previa no se puede copiar ni descargar.
  • Tiempo: una ejecución que tarda más que su límite de tiempo se detiene. Prueba con una entrada más pequeña.

¿Se envía mi texto a un servidor?

No. El texto que escribes o pegas, o abres desde un archivo local, se procesa localmente en tu navegador, en un Web Worker dedicado. Nunca se sube ni se envía al servidor (un archivo que abres se lee solo en tu navegador), y no se escribe en el almacenamiento, en cookies ni en la barra de direcciones.

«Copiar» pone el resultado en el portapapeles y «Descargar» lo guarda como archivo, pero solo cuando pulsas el botón. El archivo se crea en tu navegador, así que no se sube nada.

Para conocer todos los detalles, consulta la Política de privacidad

Herramientas y páginas relacionadas

Tu texto se queda en la página cuando cambias de herramienta en la misma pestaña, así que puedes probar el mismo texto en otra. Recargar o cerrar la pestaña lo termina.

Todas las herramientas