其他分享
首页 > 其他分享> > 前端使用arraybuffer判断导出数据是流文件还是json

前端使用arraybuffer判断导出数据是流文件还是json

作者:互联网

前端使用arraybuffer导出文本流,成功与失败格式不一样,当成功时是文本流,失败时是json

const tempBlob = new Blob([ res.data ], { type: 'application/json' })
 // 通过 FileReader 读取这个 blob
 const reader = new FileReader()
 reader.onload = e => {
   const res1 = e.target.result
   // 此处对fileReader读出的结果进行JSON解析
   // 可能会出现错误,需要进行捕获
   try {
     const json = JSON.parse(res1)
     
   } catch (err) {
   	 // 该异常为无法将字符串转为json
     // 说明返回的数据是一个流文件
     // 不需要处理该异常,只需要捕获即刻
     const link = document.createElement('a')
     let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
     link.style.display = 'none'
     link.href = URL.createObjectURL(blob)
     link.download = 'xx.xls'
     document.body.appendChild(link)
     link.click()
     document.body.removeChild(link)
   }
 }
 // 将blob对象以文本的方式读出,读出完成后将会执行 onl oad 方法
 reader.readAsText(tempBlob)

标签:const,arraybuffer,导出,json,link,blob,reader,new
来源: https://blog.csdn.net/weixin_45289656/article/details/114316463