Convertidor de CSV a JSON - Herramienta gratuita de conversión de archivos en línea
Convierta CSV a JSON y JSON a CSV instantáneamente en su navegador. Conversión de datos segura y rápida con vista previa y descarga. No se requieren cargas.
Convertidor de Archivos CSV/JSON
Convierta entre formatos CSV y JSON con facilidad. Cargue su archivo, previsualice los datos y descargue el resultado convertido.
Convertidor de CSV a JSON
Convertidor de JSON a CSV
Documentación
¿Qué es un convertidor de CSV a JSON?
Un convertidor de CSV a JSON es una herramienta que transforma datos del formato CSV (valores separados por comas) al formato JSON (notación de objetos de JavaScript), o en sentido contrario. Este convertidor se ejecuta por completo dentro del navegador web. Nunca envía el archivo cargado a un servidor, por lo que los datos permanecen en el dispositivo del usuario.
CSV es un formato de texto plano utilizado para almacenar tablas, como las hojas de cálculo exportadas desde Excel o Google Sheets. JSON es un formato de texto basado en pares clave-valor, ampliamente utilizado para transferir datos entre aplicaciones web y API. Como los dos formatos organizan los datos de manera diferente, la conversión entre ellos requiere un conjunto definido de reglas, descritas a continuación.
Cómo convertir CSV a JSON
- Haz clic en «Cargar archivo CSV» y elige un archivo
.csvdel dispositivo. - La herramienta muestra una vista previa del contenido sin procesar del archivo.
- Haz clic en «Convertir a JSON». La herramienta lee la primera línea como encabezados de columna y convierte cada línea restante en un objeto JSON.
- El resultado aparece en la vista previa de salida, con sangría.
- Haz clic en «Descargar JSON» para guardar el resultado como un archivo
.json, o en «Copiar JSON» para copiar el texto.
Cómo convertir JSON a CSV
- Haz clic en «Cargar archivo JSON» y elige un archivo
.json. El archivo debe contener una matriz de objetos JSON, por ejemplo[{"Name":"Ann"},{"Name":"Bo"}]. - La herramienta muestra una vista previa del texto JSON sin procesar.
- Haz clic en «Convertir a CSV». La herramienta recopila cada clave utilizada en todos los objetos y convierte cada una en una columna.
- El resultado aparece en la vista previa de salida como texto CSV.
- Haz clic en «Descargar CSV» para guardar el resultado como un archivo
.csv, o en «Copiar CSV» para copiar el texto.
No hay límites de carga impuestos por un servidor, porque ninguno de los datos sale del navegador. Un archivo muy grande puede ralentizar la pestaña del navegador, ya que el archivo completo se mantiene en memoria durante la conversión.
Reglas de conversión de CSV a JSON
El convertidor lee la primera fila del archivo como nombres de columna. Cada fila siguiente se convierte en un objeto JSON, con los nombres de columna como claves. Una fila con más valores que encabezados obtiene claves adicionales denominadas según su posición absoluta en la fila: con 3 encabezados, el cuarto valor usa la clave field_4, el quinto field_5, y así sucesivamente. De este modo, no se descartan datos. Una fila con menos valores recibe cadenas vacías para las claves que faltan. Si dos encabezados tienen el mismo nombre, el segundo se renombra con un sufijo; por ejemplo, a, a se convierte en las claves a y a_2.
El convertidor sigue las reglas de CSV definidas en RFC 4180, el estándar técnico para este formato. Una coma dentro de un campo solo se trata como un valor dentro de ese campo, y no como un salto de columna, si el campo está rodeado de comillas dobles, por ejemplo "Smith, John". Un salto de línea dentro de las comillas se conserva como parte del valor en lugar de tratarse como una nueva fila. Dos comillas dobles dentro de un campo entrecomillado representan un carácter de comilla literal.
Solo se reconocen las comas como separadores de columna; la herramienta no detecta ni admite punto y coma, tabulaciones u otros delimitadores.
Cada valor se comprueba y se convierte a un tipo:
- Un valor escrito como un número simple, como
42o-3.5, se convierte en un número JSON. - El texto
trueofalse(sin importar el uso de mayúsculas o minúsculas) se convierte en un booleano JSON. - Cualquier otro valor permanece como una cadena JSON, incluidas las celdas vacías, que se convierten en cadenas vacías.
- Un número con ceros iniciales, como
00512, permanece como cadena, porque el cero inicial suele tener significado, como en un código postal o un número de identificación. - Un número solo se acepta si, al volver a escribirlo, produce exactamente el mismo texto. Los enteros largos superiores a 9 007 199 254 740 991, el número entero más grande que un número de JavaScript puede representar exactamente, normalmente no superan esa comprobación y permanecen como cadenas, para que no se pierdan dígitos.
- Un valor que el archivo ya había rodeado de comillas siempre se conserva como cadena, aunque parezca un número, ya que las comillas se interpretan como una indicación del autor de que se trata de texto.
Las líneas en blanco del archivo se omiten y no producen objetos vacíos.
Reglas de conversión de JSON a CSV
El convertidor examina cada objeto de la matriz y recopila el conjunto completo de claves utilizadas en todos ellos. Esas claves se convierten en los encabezados de las columnas CSV, en el orden en que aparecen por primera vez. Si a un objeto le falta una clave que otro objeto sí tiene, su celda se deja vacía en lugar de producir un error.
La conversión de JSON a CSV no aplana los objetos anidados en columnas separadas. Un valor que sea un objeto o una matriz se vuelve a escribir como texto JSON dentro de una sola celda, de modo que {"b": 1} se convierte en la celda {"b":1} y [1, 2] se convierte en la celda [1,2]. No se pierde nada, pero la parte anidada permanece en una columna en lugar de dividirse. Si cada elemento necesita su propia columna, primero hay que aplanar manualmente el JSON anidado.
Un valor null, y una clave que un objeto tiene pero que otro no tiene, producen una celda vacía.
Un valor de celda que contiene una coma, una comilla o un salto de línea se rodea de comillas dobles en la salida, y cualquier comilla que contenga se duplica, siguiendo la regla de escape de CSV descrita anteriormente.
El JSON de entrada debe ser una matriz, y cada elemento debe ser un objeto. Un número, una cadena, null o una matriz anidada en lugar de un objeto produce el error «JSON debe ser una matriz de objetos». Una matriz sin ningún elemento produce el error «La matriz JSON está vacía. Añade al menos un objeto para convertirlo». Un archivo cargado sin contenido produce el error «El archivo cargado está vacío».
Ejemplo
Archivo CSV inicial:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Al convertirlo a JSON se obtiene:
1[
2 {
3 "Name": "Ann Lee",
4 "Age": 29,
5 "Member": true
6 },
7 {
8 "Name": "Bo, Jr.",
9 "Age": 7,
10 "Member": false
11 }
12]
13"Bo, Jr." conservó la coma porque el campo estaba entrecomillado en el archivo de origen, y Age y Member se convirtieron en un número y un booleano.
Al convertir ese mismo JSON de nuevo a CSV, con una fila añadida en la que falta Age, se obtiene:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5El valor Age que falta se convierte en una celda vacía, y la coma de "Bo, Jr." hace que el campo vuelva a estar entrecomillado en la salida.
Usos habituales
- Análisis de datos: convertir una exportación CSV de una hoja de cálculo o una herramienta de análisis en JSON para procesarla con JavaScript y, después, volver a convertir los resultados a CSV para un informe.
- Pruebas de API: un desarrollador que crea una API que acepta cargas CSV puede convertir archivos de ejemplo a JSON para comprobar que un analizador produce los objetos esperados.
- Migración de datos: trasladar registros de un sistema que exporta CSV a otro que solo acepta JSON, o en sentido contrario.
- Inspección rápida: convertir un archivo JSON en un CSV similar a una tabla para leerlo con mayor facilidad, o hacerlo al contrario.
Las bibliotecas de programación ofrecen la misma conversión para trabajos más grandes o repetitivos, como los módulos csv y json de Python, o pandas. Las herramientas de línea de comandos, como csvkit y jq, permiten convertir y filtrar datos desde un terminal. Estas opciones son adecuadas para el procesamiento por lotes; esta herramienta del navegador sirve para convertir un archivo puntual sin instalar nada.
Preguntas frecuentes
¿Se envía el archivo cargado a un servidor?
No. La conversión se ejecuta en JavaScript dentro de la pestaña del navegador. El archivo se lee desde el dispositivo local y nunca se transmite.
¿El convertidor admite delimitadores distintos de la coma, como un punto y coma o una tabulación?
No. La versión actual solo lee valores separados por comas. Primero hay que convertir a un formato separado por comas cualquier archivo que utilice otro delimitador, por ejemplo, reemplazando el delimitador en un editor de texto.
¿Por qué un número como 00512 permaneció como cadena de texto en la salida JSON?
Los ceros iniciales suelen tener significado, como en un código postal, por lo que el convertidor conserva ese valor como cadena en lugar de convertirlo en el número 512, lo que eliminaría el cero.
¿Qué ocurre si convierto JSON que contiene objetos anidados?
El objeto anidado se escribe como texto JSON en una sola celda, por ejemplo {"b":1}. Los datos se conservan, pero no se dividen en columnas separadas. Primero hay que aplanar los datos anidados si cada campo necesita su propia columna.
¿Qué ocurre si mi JSON no es una matriz de objetos?
La herramienta muestra un error y no convierte nada. La entrada debe ser una matriz JSON en la que cada elemento sea un objeto, por ejemplo [{"a":1},{"a":2}].
¿La primera fila de un archivo CSV siempre debe ser una fila de encabezados?
Sí. El convertidor siempre trata la primera fila como nombres de columna. En un archivo sin fila de encabezados, la primera fila de datos se interpretará incorrectamente como encabezados.
Referencias
- Shafranovich, Y. «Common Format and MIME Type for Comma-Separated Values (CSV) Files». RFC 4180, IETF, octubre de 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., ed. «The JavaScript Object Notation (JSON) Data Interchange Format». RFC 8259, IETF, diciembre de 2017. https://www.rfc-editor.org/rfc/rfc8259
- «Working with JSON». MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON