Json To Csv LogoJson To Csv

Cómo crear un CSV a partir de JSON: 7 decisiones que convierten datos crudos en un archivo que funciona (Guía 2026)

Crear un CSV es redactar, no solo convertir: las columnas son un contrato, el delimitador es una decisión deliberada y el entrecomillado es automático hasta que lo tocas. Estas son las siete decisiones que convierten JSON crudo en un archivo que se abre correctamente allá donde llegue.

Actualizado: 2026-10-1410 min de lectura

Crear no es lo mismo que convertir

La gente dice \"crear un CSV\" y \"convertir JSON a CSV\" como si fueran lo mismo. No lo son. Convertir es mecánico: el mismo JSON siempre produce el mismo CSV con los mismos ajustes. Crear es autoría: el archivo que entregas a un colega, importas en una base de datos o alimentas a una herramienta de análisis tiene que sobrevivir en entornos que no controlas: Excel en otro país, un cargador de base de datos con reglas estrictas, un compañero que lo abre todo con doble clic.

La distancia entre \"convertido\" y \"creado\" son siete decisiones. Si las omites, el archivo igual se convierte; simplemente se rompe en algún punto posterior, en el peor momento posible. La buena noticia: cada decisión lleva segundos, y una vez que entiendes qué es, ya no podrás dejar de verla. Cada ejemplo de abajo se ejecutó con el motor de conversión real de este sitio — el mismo JavaScript que corre cuando pulsas Convertir — así que las salidas mostradas son las que obtendrás de verdad.

Decisión 1: aplana el árbol antes de redactar la cuadrícula

No puedes redactar columnas a partir de JSON anidado. Un CSV es una cuadrícula — filas y columnas, cada celda un único valor plano — y los objetos anidados no tienen columna donde vivir. Así que la primera decisión es aplanar: los objetos anidados se convierten en columnas con notación de puntos (customer se convierte en customer.name y customer.city), las listas de valores simples se unen en una sola celda y los nulos se convierten en celdas vacías. Este es el paso mecánico, y es el que el conversor hace por ti con su opción de aplanado.

¿Por qué hacerlo primero? Porque cada decisión posterior — nombres de encabezado, delimitadores, entrecomillado — opera sobre el resultado aplanado. Si renombras los encabezados antes de aplanar, estás nombrando columnas que aún no existen. El motor de aquí aplana por defecto con la opción llamada flattenNested, así que en la práctica esta decisión es: déjala activada, echa un vistazo a la vista previa y confirma que los nombres de columna son los que esperas.

Decisión 2: nombra tus columnas como un contrato

Los nombres de la fila de encabezados son un contrato con cada herramienta que tocará el archivo. Los malos nombres de encabezado son la forma más silenciosa de crear un mal CSV: nunca fallan en el momento de la conversión; fallan en la importación a la base de datos tres semanas después. Cuatro reglas cubren casi todo:

  • Sin espacios en los nombres de encabezado. \"order id\" te resulta legible a ti y es un informe de error para un cargador SQL; usa orderId o order_id en su lugar. El motor de aplanado ya produce nombres con puntos sin espacios (customer.name), así que solo tus claves de nivel superior necesitan atención.
  • Sin nombres duplicados. Dos encabezados idénticos hacen que la segunda columna sobrescriba silenciosamente a la primera en muchos importadores. Si tu JSON tiene tanto \"user.name\" como clave literal como un user: { name } anidado, el aplanado los fusiona en una sola columna: el valor anidado gana y el otro se pierde. Renombra antes de convertir si ambos valores importan.
  • Sin dígitos al inicio. Nombres de columna como \"2024-sales\" se rompen en muchos dialectos SQL y en algunas herramientas de BI. Mejor sales_2024.
  • Estables y completos. Un encabezado es una API: abreviar \"qty\" está bien, pero \"q\" confundirá a alguien dentro de seis meses. Elige palabras completas una vez y reutilízalas en todos los archivos.

Algo que no debes temer: nombres de encabezado no ASCII. Si tus columnas son product_name y etiquetas japonesas como \"商品名\", UTF-8 las lleva sin problema (la Decisión 6 trata la codificación). El motor escribe las celdas de encabezado con las mismas reglas de entrecomillado que las celdas de datos, así que incluso un encabezado con una coma o una comilla se escapa correctamente: verificamos la lógica de escape en el código fuente; el entrecomillado se aplica por celda, encabezados incluidos.

Decisión 3: elige el delimitador a propósito

La coma es el delimitador por defecto, y para la mayoría de los archivos es el correcto. Pero el delimitador no es una formalidad: es el carácter por el que se analiza todo el archivo. El conversor ofrece coma, punto y coma, tabulación, barra vertical y personalizado, y aquí es cuando cada uno se gana su lugar:

  • Coma: el valor por defecto. Úsala salvo que tengas un motivo para no hacerlo. Todas las herramientas la leen.
  • Punto y coma: cuando tus datos están llenos de comas. Las exportaciones europeas lo usan mucho, y no por casualidad: en muchos países europeos la coma es el separador decimal, así que un archivo delimitado por comas sería ambiguo. Si tus campos de texto están llenos de comas, el punto y coma mantiene las celdas legibles sin depender del entrecomillado.
  • Tabulación: cuando humanos van a leer el archivo en crudo. Los valores separados por tabulaciones se pegan directamente en hojas de cálculo y siguen siendo legibles en un editor de texto. Útil para flujos de copiar y pegar.
  • Barra vertical: cuando tu texto contiene comas, comillas Y puntos y coma: mensajes de registro, direcciones, prosa. La barra vertical es rara dentro del texto natural, así que rara vez colisiona.

La trampa honesta: el entrecomillado existe precisamente para que la elección del delimitador sea sobrevivible. Cuando una celda contiene el delimitador, el motor la envuelve en comillas automáticamente (Decisión 4), así que una dirección llena de comas en un archivo delimitado por comas sigue analizándose bien. La elección del delimitador trata de legibilidad y de los hábitos de tu audiencia, no de corrección: la corrección es trabajo del motor de entrecomillado. Una advertencia real, eso sí: si eliges punto y coma para una audiencia en EE. UU. o Reino Unido, avísales: su Excel puede esperar comas por defecto y abrir tu archivo como una sola columna larga.

Decisión 4: deja el entrecomillado en automático

El entrecomillado es la parte más incomprendida del CSV. La regla es simple: una celda que contiene el delimitador, una comilla o un salto de línea debe envolverse en comillas dobles, y cualquier comilla interior debe duplicarse. Esto es lo que el motor produce de verdad — verificado, no ilustrado:

Entrecomillado en acción (verificado con el motor real)
name,city,qty
"Say ""hi"", friend",Oslo,3

Léelo con atención: la celda Say \"hi\", friend se convirtió en \"Say \"\"hi\"\", friend\" — envuelta en comillas porque contiene una coma, y sus comillas interiores duplicadas. Esa es la salida correcta, conforme al estándar, y todos los programas de hoja de cálculo reales la analizan de vuelta al texto original exacto.

Decisión 4: deja el entrecomillado en automático (continuación)

Cambia el delimitador a punto y coma y mira cómo se adapta el entrecomillado:

Mismos datos, delimitador punto y coma (verificado)
name;city;qty
"Say ""hi"", friend";Oslo;3

La coma ya no dispara el envoltorio, pero la comilla sí: el motor entrecomilla según el delimitador real en uso, no según una idea fija de lo que es \"especial\". Esa conciencia por delimitador es lo que significa \"automático\", y es el ajuste que debes dejar tranquilo. El motor también ofrece modos de comillas siempre y nunca; nunca es una trampa, y aquí está la prueba:

Decisión 4: deja el entrecomillado en automático (continuación)

quoteMode \"never\" — el error garrafal (verificado)
note,code
line1
line2,007

Con el entrecomillado desactivado, una celda con un salto de línea real queda en crudo, y ese salto de línea ahora parece un límite de fila para todos los analizadores del planeta. Tu archivo de 2 filas se lee como 3 filas, una de ellas basura. Las comillas siguen duplicándose (el motor lo hace incondicionalmente), pero nada se envuelve. Usa \"never\" solo cuando un sistema posterior exija explícitamente salida sin comillas y hayas verificado que ninguna celda contiene delimitadores, comillas ni saltos de línea. En cualquier otro caso: automático.

Decisión 5: haz que los valores sean texto tal como quieres verlos

JSON tiene tipos: números, booleanos, nulos. CSV tiene exactamente un tipo: texto. El momento de la conversión es cuando cada valor adopta su forma textual final, y esta es la decisión que la mayoría nunca toma conscientemente. Tres formas de valor merecen tu atención:

Primero, los ceros a la izquierda. Una cadena JSON como \"007\" se queda en 007 en el CSV: lo verificamos, sin comillas, exactamente como se escribió. Pero al abrir ese archivo en Excel igual verás 7, porque Excel reinterpreta las celdas al abrir. El CSV es correcto; el visor tiene opinión propia. Si los ceros a la izquierda deben sobrevivir a Excel, la solución está en el lado receptor (importar como texto), no en el archivo: sábelo antes de culpar al conversor.

Segundo, las fechas. JSON no tiene tipo fecha, así que tus \"fechas\" son cadenas como 2026-10-14 o marcas de tiempo como 1697000000. La forma que conviertas es la forma que el CSV conserva, así que elige la orientada a humanos antes de exportar: ISO 2026-10-14 se ordena correctamente como texto; 10/14/2026 no, y medio mundo la leerá mal. Toma la decisión en el JSON, no después de que el CSV exista.

Tercero, decimales y booleanos. Un número como 19.99000001 se convierte en exactamente ese texto; los booleanos se convierten en true/false. Si tus datos fuente tienen ruido de coma flotante, redondéalos antes de convertir: el CSV no redondeará por ti.

Decisión 6: elige UTF-8 deliberadamente — y conoce la cuestión del BOM

La codificación es la decisión que nadie toma hasta que el mojibake la impone. UTF-8 es la respuesta en 2026: lleva todos los idiomas y todas las herramientas modernas la leen. La sutileza es el BOM: la marca de orden de bytes invisible que algunas herramientas de Windows quieren al inicio del archivo.

Este es el dato honesto sobre el conversor de este sitio: la descarga es UTF-8 plano, sin BOM — leímos el código de descarga, que crea un Blob text/csv con charset=utf-8 y sin marca inicial. Eso es correcto para subidas web, bases de datos, Google Sheets y Python. El único punto donde muerde: hacer doble clic en el archivo en algunas versiones de Excel para Windows, que puede adivinar mal la codificación y destrozar los caracteres no ASCII.

La solución no es exigirle un BOM al conversor: es una importación de 20 segundos. En Excel: Datos → Desde texto/CSV → elige 65001 (UTF-8) en el desplegable de codificación. Tus caracteres salen perfectos y el archivo sigue limpio para cualquier otra herramienta. Decide tu codificación una vez por flujo de trabajo y documéntala junto al archivo; las sorpresas de codificación siempre son un fallo de comunicación, nunca un fallo de datos.

Decisión 7: valida el archivo final antes de que salga de tus manos

Crear termina con una comprobación, y lleva menos de un minuto. Cuatro pasos:

  • Ábrelo primero en un editor de texto, no en una hoja de cálculo. Un editor de texto te muestra el archivo; una hoja de cálculo te muestra su interpretación. Verifica la fila de encabezados, el delimitador y que las celdas entrecomilladas se vean sanas.
  • Cuenta las filas. El motor informa el recuento de filas y columnas en sus estadísticas: compáralo con la longitud de tu matriz JSON. Un desajuste significa una sorpresa de análisis (normalmente un salto de línea sin entrecomillar en quoteMode \"never\", o un JSON de entrada malformado).
  • Reimpórtalo. Pega el CSV de vuelta o ábrelo en la herramienta a la que lo vas a enviar. Si allí se abre correctamente, se abrirá correctamente para el destinatario.
  • Revisa los bordes: primera fila, última fila y una fila con los caracteres más raros. La corrupción se agrupa en los límites.

Esta lista también es la respuesta a \"¿por qué mi CSV se ve roto?\": en nuestra experiencia, nueve de cada diez veces el problema es el visor o los ajustes de importación, y el archivo solo la décima. El hábito de mirar primero en el editor de texto es lo que separa ambas cosas en segundos.

La receta de 60 segundos, con las siete decisiones dentro

Pega o sube tu JSON al conversor. Deja el aplanado activado y echa un vistazo a la vista previa de columnas: esos nombres con puntos son tus encabezados, así que renombra primero en el origen las claves problemáticas. Mantén la coma como delimitador salvo que tu texto esté lleno de comas (entonces punto y coma). Deja el entrecomillado en automático. Haz que fechas y números se vean como quieres verlos en texto plano antes de convertir. Descarga el archivo UTF-8, ábrelo una vez en un editor de texto y reimpórtalo donde vaya a ir. Listo: un archivo creado, no meramente convertido.

Abrir el conversor gratuito de JSON a CSV

Guías relacionadas

Preguntas frecuentes

¿Cómo creo un archivo CSV a partir de JSON?

Pega o sube tu JSON a un conversor, aplana los datos anidados en columnas, revisa los nombres de encabezado y el delimitador, y descarga. La lista completa: aplana primero, nombra las columnas sin espacios, mantén la coma como delimitador salvo que tus datos estén llenos de comas, deja el entrecomillado en automático, formatea fechas y números como el texto que quieres ver, descarga en UTF-8 y reimporta el archivo una vez para validarlo.

¿Cuál es el mejor delimitador para un CSV creado desde JSON?

La coma es el valor por defecto y la opción correcta para la mayoría de los archivos. Usa punto y coma cuando tus campos de texto estén llenos de comas (común en exportaciones europeas, donde la coma también es el separador decimal), tabulación para legibilidad al copiar y pegar, y barra vertical cuando el texto contenga comas, comillas y puntos y coma. Un entrecomillado correcto hace que cualquiera de ellos se analice con seguridad: la elección trata de los hábitos de tu audiencia, no de la corrección.

¿Cómo debo nombrar las columnas de un CSV creado desde JSON?

Trata los nombres de encabezado como un contrato: sin espacios (order_id, no \"order id\"), sin duplicados, sin dígitos al inicio (sales_2024, no 2024-sales) y palabras completas en lugar de abreviaturas crípticas. Las claves anidadas aplanadas ya salen como nombres con puntos sin espacios, como customer.name: normalmente solo tus claves de nivel superior necesitan atención.

¿Por qué mi CSV se abre mal en Excel después de crearlo desde JSON?

Nueve de cada diez veces el archivo está bien y el problema es el visor. Causas comunes: Excel adivina mal el delimitador (un archivo con punto y coma abierto como si fuera de comas), adivina mal la codificación en texto no ASCII (reimporta con Datos → Desde texto/CSV y codificación 65001 UTF-8) o Excel reinterpreta las celdas (quita ceros a la izquierda como 007 o reformatea fechas). Abre el archivo primero en un editor de texto: si allí se ve bien, el archivo está bien.

¿Necesito comillas alrededor de cada celda en un CSV?

No: el entrecomillado automático (según necesidad) es correcto y suficiente. Las celdas que contienen el delimitador, comillas o saltos de línea se envuelven en comillas dobles, con las comillas interiores duplicadas. \"Always\" añade ruido, y \"never\" es peligroso: un salto de línea sin entrecomillar dentro de una celda parece un límite de fila para todos los analizadores y corrompe silenciosamente tu recuento de filas.

¿Mi CSV creado desde JSON debería llevar BOM?

Normalmente no. Un archivo UTF-8 sin BOM funciona en todas partes: bases de datos, subidas web, Google Sheets, Python. Algunas versiones de Excel para Windows leen mal los archivos sin BOM al hacer doble clic: la solución es una importación correcta (Datos → Desde texto/CSV, codificación 65001) en lugar de añadir un BOM, que puede confundir a otras herramientas. El conversor de este sitio descarga UTF-8 plano sin BOM.

¿Cómo compruebo que mi CSV generado es correcto?

Cuatro pasos rápidos: ábrelo en un editor de texto (no en una hoja de cálculo) para ver el archivo real, compara el recuento de filas con la longitud de tu matriz JSON, reimpórtalo en la herramienta a la que lo vas a enviar e inspecciona la primera fila, la última y la fila con los caracteres más extraños. La corrupción se agrupa en los límites: si los bordes están bien, el archivo está bien.

Crea tu CSV ahora: aplanado, entrecomillado y encabezados resueltos

Pega JSON o sube un archivo: los datos anidados se aplanan en columnas limpias, los delimitadores y el entrecomillado son automáticos, y la descarga es UTF-8 plano. Gratis, sin registro, se ejecuta por completo en tu navegador.

Abrir el conversor de JSON a CSV
Todas las guías