Convierte una lista JSON de objetos, o la primera lista de objetos dentro de un objeto, a texto CSV simple.
Qué hace
JSON to CSV convierte registros JSON en una tabla simple que una hoja de cálculo puede abrir: una fila por registro, una columna por nombre y todos los valores escritos como texto normal.
Lee una lista de objetos, un objeto que contiene esa lista o un objeto suelto. Los objetos anidados se convierten en columnas con el nombre en ruta separada por puntos, como address.city, y la herramienta indica de dónde salieron las filas.
Qué admite
- Se admite: una lista de objetos, donde cada objeto es una fila; un objeto que contiene una lista de objetos, donde se usa la primera lista así; y un objeto suelto, que se convierte en una fila. En una lista del nivel superior del JSON, un elemento que no es un objeto, como un número o un texto, se convierte en una fila con una columna llamada value.
- De dónde salen las filas: para un objeto, la herramienta recorre sus miembros en el orden en que se escribieron, entrando en los objetos anidados antes de seguir adelante, y usa la primera lista que no está vacía y solo tiene objetos. El resultado indica su ruta, como employees.employee. Si no hay una lista así, el propio objeto es una fila.
- La fila de encabezado enumera todas las columnas que aparecen en cualquier fila, en el orden en que cada una se ve por primera vez. Un objeto anidado añade una columna por valor, con el nombre formado por su ruta unida con puntos, como address.city. Cuando una fila no tiene valor para una columna, su celda queda vacía.
- Las celdas son texto normal. Un texto se escribe tal cual, un número como se escribió (9007199254740993, 2.370 y 1e400 salen sin cambios), true y false como son, y null como una celda vacía. Una lista anidada se escribe entera como JSON compacto, como [1,null], y un objeto anidado vacío como {}.
- El archivo usa comas entre celdas y un salto de línea CRLF entre filas (el salto de línea estándar de CSV). Es texto UTF-8 sin marca de orden de bytes y sin salto de línea al final. Una celda solo lleva comillas cuando contiene una coma, unas comillas dobles o un salto de línea, y cada comilla doble de su interior se duplica.
- Un objeto sin ningún miembro se mantiene como una fila de celdas vacías, siempre que otra fila tenga al menos una columna. Si ninguna fila tiene columnas, la tabla no tendría ninguna y la conversión se rechaza.
Conviene saber
- Los tipos no se conservan: el texto "1" y el número 1 pasan a ser los dos 1, y null, un texto vacío y un nombre ausente pasan a ser todos una celda vacía. Si necesitas conservar el tipo de cada valor, JSON to YAML lo registra.
- Solo se usa una lista. Cuando un objeto tiene varias listas de objetos, las demás se quedan fuera, igual que los miembros que están junto a la lista. El resultado indica la lista usada, así que comprueba que sea la que querías.
- Dos miembros que recibirían el mismo nombre de columna, como un miembro llamado a.b y un miembro b dentro de un objeto a, se rechazan, porque un valor sobrescribiría al otro. Los nombres repetidos dentro de un objeto y las cadenas con escapes subrogados sin pareja también se rechazan, en lugar de adivinarse.
- Riesgo de las hojas de cálculo: los programas de hojas de cálculo pueden reinterpretar un archivo al abrirlo. Una celda que empieza por =, +, -, @, un tabulador o un retorno de carro y no es un número simple, como =1+1 o @SUM(A1), se escribe exactamente como está, y una hoja de cálculo puede ejecutarla como fórmula; la herramienta solo muestra el aviso sobre hojas de cálculo cuando existe una celda así, nombres del encabezado incluidos. Los números, las fechas y los números con ceros a la izquierda también pueden ser reescritos por una hoja de cálculo. La herramienta no cambia ningún dato para evitarlo: no añade apóstrofos ni escapa nada por ti.
- Cuando aparece ese aviso, tienes que confirmar que entiendes el riesgo antes de copiar o descargar. Al abrir el archivo en una hoja de cálculo, impórtalo como texto en lugar de abrirlo con doble clic, y ten en cuenta que volver a escribir una celda aún puede convertirla en fórmula. Esto no hace que abrir un CSV sea completamente seguro, y el sitio no puede prometer que un archivo sea seguro en todos los programas de hojas de cálculo.
- Una tabla con muchas columnas y muchas filas puede dar un resultado mayor que la entrada. Si supera el límite de tamaño, se rechaza con una vista previa incompleta (mira abajo).
Cómo usarla
- Pega o escribe tu JSON en el cuadro de entrada. Puede ser una lista de objetos, un objeto que contiene una lista de objetos o un objeto suelto. No se ejecuta nada mientras escribes.
- Pulsa «Convertir». CSV no tiene opción de sangría.
- Lee el CSV junto a tu entrada. Cuando las filas salieron de dentro de un objeto, el resultado dice de qué parte, por ejemplo employees.employee. Si una celda pudiera ejecutarse como fórmula en una hoja de cálculo, aparece un aviso sobre hojas de cálculo en el área del resultado. Si se rechaza la conversión, el mensaje explica el motivo.
- Pulsa «Copiar» para poner el CSV en el portapapeles, o «Descargar» para guardar converted.csv. Si apareció el aviso sobre hojas de cálculo, marca «Entiendo el riesgo de las hojas de cálculo descrito en el aviso.» antes: hasta que lo hagas, «Copiar» y «Descargar» no están disponibles.
Ejemplos
Una lista de registros
Pega este JSON y pulsa «Convertir». Cada objeto se convierte en una fila y cada nombre en una columna. Los textos salen como se escribieron, sin comillas, y los números salen exactamente como estaban. Una celda solo lleva comillas cuando contiene una coma, unas comillas dobles o un salto de línea.
[{"id":1,"name":"Ada Lovelace","city":"London"},{"id":2,"name":"Grace Hopper","city":"New York"}]id,name,city
1,Ada Lovelace,London
2,Grace Hopper,New YorkUna lista vacía
Una lista sin ningún elemento no tiene filas que escribir, así que se rechaza la conversión y el mensaje explica el motivo.
[]El array está vacío. JSON a CSV necesita al menos un elemento para formar una fila.
Registros dentro de un objeto
Muchas respuestas de API envuelven sus registros en un objeto. JSON to CSV recorre el objeto y usa la primera lista de objetos que encuentra, aquí employees.employee, y el resultado indica esa ruta. Los demás miembros del objeto no entran en el CSV.
{"employees":{"employee":[{"id":"1","firstName":"Tom","lastName":"Cruise"},{"id":"2","firstName":"Maria","lastName":"Sharapova"}]}}id,firstName,lastName
1,Tom,Cruise
2,Maria,SharapovaObjetos anidados y listas
El objeto address se convierte en dos columnas, address.city y address.zip. La lista tags se mantiene entera en una celda como JSON compacto, y por eso esa celda va entre comillas (contiene comas y comillas dobles). true sale como true y null se convierte en una celda vacía.
[{"id":1,"address":{"city":"Recife","zip":"50000-000"},"tags":["a","b"],"active":true,"note":null}]id,address.city,address.zip,tags,active,note
1,Recife,50000-000,"[""a"",""b""]",true,Valores distintos que quedan iguales
Una celda de CSV es solo texto, así que los tipos se pierden. El número 1 y el texto "1" salen los dos como 1, y un texto vacío, null y un nombre ausente salen todos como una celda vacía. El nombre late no existe en el primer registro.
[{"a":1,"s":"1","e":"","n":null},{"late":true}]a,s,e,n,late
1,1,,,
,,,,trueLí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.
- Anidamiento: hasta 256 niveles de objetos y listas dentro de otros. Un JSON más profundo se rechaza porque supera lo que procesa la herramienta.
- Tiempo: una ejecución que tarda más que su límite de tiempo se detiene. Prueba con una entrada más pequeña.
Tu privacidad
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.