Guía

Cómo convertir JSON a CSV de forma segura

Convierte arrays de objetos en una tabla, conserva columnas y reduce el riesgo de fórmulas al abrir CSV en una hoja de cálculo.

por Tools in a Tab · Publicado el · Revisado el

Respuesta breve

CSV es una tabla; JSON puede contener árboles arbitrarios. Una conversión útil empieza definiendo qué representa una fila y qué propiedades forman columnas.

Forma recomendada

[
  { "name": "Ada", "score": 10 },
  { "name": "Lin", "score": 12 }
]

produce:

name,score
Ada,10
Lin,12

Un objeto único puede tratarse como una fila. Un array vacío, escalares sueltos o una mezcla de objetos y otros valores no permiten deducir una tabla sin inventar reglas.

Comillas, saltos y separador

Un campo que contiene el separador, comillas o saltos de línea debe encerrarse entre comillas dobles, duplicando cada comilla interior. El separador puede ser coma, punto y coma o tabulador según el consumidor; no se debe cambiar solo por la configuración regional sin comunicarlo.

El conversor JSON a CSV mantiene objetos y arrays anidados como JSON compacto en una celda, conserva el orden estable de columnas y genera CRLF para el archivo.

Fórmulas de hoja de cálculo

Una celda de texto que comienza con =, +, - o @ puede interpretarse como fórmula al abrir el archivo en ciertas hojas de cálculo. Es un riesgo si el contenido procede de usuarios o fuentes no confiables.

La herramienta activa por defecto una protección que antepone un apóstrofo a esas cadenas. Esto cambia el dato visible subyacente y no existe una mitigación universal para todos los programas y flujos de reimportación. La guía de OWASP sobre CSV Injection detalla el riesgo y las limitaciones.

Antes de descargar

  • Valida el JSON y rechaza claves duplicadas.
  • Confirma qué campos son columnas y qué hacer con valores ausentes.
  • Elige separador y codificación esperados por el importador.
  • Mantén la protección si el archivo se abrirá manualmente y contiene texto no confiable.
  • Si el CSV alimenta otro programa, valida allí los tipos: CSV no conserva la diferencia entre número, booleano, null y cadena.