Estoy creando esta función js:
export function convertArrayObjToFileDownload(data, filename, filetype = 'application/octet-stream') { const blob = new Blob(data, { type: filetype }); downloadBlob(blob, filename); } data es una matriz de objetos personalizados, como {Client: 'My Bank', Tasks: 15, Charge Amount: '$300.00' } .
Estoy tratando de convertir esta matriz de objetos en blob. La matriz podría tener cientos de elementos.
¡Estás muy cerca! Aquí está el problema:
El constructor Blob() acepta un Array como primer parámetro:
https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob#parameters
Y el Array debe contener una representación serializada de los datos que desea almacenar. Para un objeto de JavaScript, normalmente es JSON. Entonces, primero convierta su objeto de data en una cadena JSON y luego almacene esa cadena en el Blob:
const json = JSON.stringify(data); const blob = new Blob([json], { type: 'text/plain;charset=utf-8' }) Dado que almacenará una cadena (codificada en UTF-8 de manera predeterminada), le recomiendo usar el tipo MIME text/plain;charset=utf-8 .
Una vez que descargue este Blob, será fácil de abrir en cualquier editor de texto, ya que es solo texto sin formato.