Conversor CSV ↔ JSON

Convierte CSV a JSON o JSON a CSV directamente en tu navegador.

El formulario interactivo está listo al activar JavaScript.

Cómo utilizar

Pega un CSV y pulsa «CSV → JSON» para obtener un array de objetos, uno por fila, con las claves de la fila de cabecera. Pega un array JSON de objetos y pulsa «JSON → CSV» para recuperar una tabla, con una cabecera formada por todas las claves que aparecen, en el orden en que aparece cada una por primera vez. El separador puede ser una coma, un punto y coma o una tabulación, y se aplica en ambos sentidos. Los archivos de países que usan la coma como separador decimal suelen ir separados por punto y coma: para ellos, elige «Punto y coma»; si no, cada línea se lee como un solo campo o se divide por sus comas decimales.

Un campo que contiene el separador, una comilla o un salto de línea debe ir entre comillas dobles, y una comilla dentro de él se escribe dos veces: "She said ""hi""" se lee como She said "hi". Las líneas vacías se omiten, así que la cabecera es la primera línea con contenido; las celdas que faltan pasan a ser cadenas vacías y las que quedan más allá de la última cabecera se descartan. Un nombre de cabecera vacío pasa a ser column_ seguido de la posición de la columna, como column_3, y uno repetido recibe el primer sufijo libre (name, name_2), así que ninguna columna sobrescribe a otra. Una comilla que nunca se cierra se notifica como CSV no válido.

Todos los valores del CSV pasan a ser cadenas JSON, incluidos los números y true o false: el CSV no tiene tipos, así que el conversor no intenta adivinarlos. Eso es lo que mantiene intactos los ceros a la izquierda (007, códigos postales, números de teléfono) y los identificadores largos; convierte a números en tu propio código los campos que necesites. En el sentido contrario, los números y true o false se escriben tal cual, null pasa a ser una celda vacía, y un objeto o array anidado se escribe como texto JSON dentro de su celda.

«JSON → CSV» acepta un array de objetos o un solo objeto, que se convierte en una fila. Un array de valores simples da una sola columna llamada value. Las filas se separan con saltos de línea, y una celda solo se pone entre comillas cuando hace falta. Todo se ejecuta en tu navegador; no se sube nada.

Ejemplo

La cabecera se convierte en los nombres de las propiedades JSON. Las dos filas de datos se convierten en dos objetos.

  • name,email / Ana,[email protected][{"name": "Ana", "email": "[email protected]"}]
  • id / 007"id": "007": los ceros a la izquierda se mantienen, porque los valores se conservan como texto.
  • "Lisbon, Portugal" en un campoSigue siendo un solo valor; sin las comillas se dividiría en dos columnas.
  • name;price / Pão;1,20 con «Punto y coma»[{"name": "Pão", "price": "1,20"}]. Si eliges «Coma», la cabecera pasa a ser un solo campo, name;price, y la fila se lee como Pão;1: el 20 cae en una celda de más y se descarta.
  • [{"a":1,"tags":["x","y"]}] → CSVa,tags y después 1,"[""x"",""y""]": el array se escribe como texto JSON y entre comillas, porque contiene comillas y una coma.

Preguntas frecuentes

¿Por qué mis identificadores perdieron los ceros a la izquierda?

En este conversor no: mantiene todos los valores del CSV como texto, así que 007 sigue siendo 007. Los ceros suelen perderse antes, cuando el archivo se abre y se guarda en una hoja de cálculo que lee 007 como el número 7. Mantén los identificadores, los códigos postales y los números de teléfono como texto de principio a fin.

¿Por qué algunos CSV usan punto y coma?

Porque en gran parte de Europa y Sudamérica la coma es el separador decimal, así que no puede separar también los campos. Esas exportaciones usan punto y coma en su lugar: el mismo formato con otro separador, y por eso un archivo que se abre bien en un sitio aparece como una sola columna en otro. Elige «Punto y coma» antes de convertirlo.

¿Por qué los números son cadenas en el JSON?

Porque el CSV no indica qué valores son números. Leer 007, 1e3 o un identificador de 20 dígitos como número lo cambiaría, así que el conversor deja esa decisión en tus manos.

¿Puede convertir JSON anidado?

En parte. Cada objeto pasa a ser una fila y cada clave de primer nivel, una columna; los objetos y arrays anidados se escriben como texto JSON dentro de su celda en lugar de repartirse en columnas adicionales.

¿Qué pasa con una comilla dentro de un campo?

Se duplica y el campo se pone entre comillas, como exige el CSV: She said "hi" pasa a ser "She said ""hi""".

Herramientas relacionadas