前端二进制流json下载文件示例代码
时间: 2023-08-09 22:10:58 浏览: 56
如果你想要在前端将二进制流转换为 JSON 并下载为文件,可以使用以下示例代码:
```javascript
function downloadJsonFile(data, fileName) {
const json = JSON.stringify(data);
const blob = new Blob([json], { type: 'application/json' });
if (navigator.msSaveBlob) {
// For IE and Edge
navigator.msSaveBlob(blob, fileName);
} else {
const link = document.createElement('a');
const url = URL.createObjectURL(blob);
link.href = url;
link.download = fileName;
document.body.appendChild(link);
link.click();
setTimeout(() => {
document.body.removeChild(link);
URL.revokeObjectURL(url);
}, 0);
}
}
// Example usage:
const jsonData = ... // Your JSON data
const fileName = 'example.json';
downloadJsonFile(jsonData, fileName);
```
在上面的示例代码中,`downloadJsonFile` 函数接收 JSON 数据和文件名作为参数。它首先将 JSON 数据转换为字符串,并创建一个 Blob 对象,将字符串和 MIME 类型 `'application/json'` 传递给它。然后,根据浏览器支持情况,通过不同的方式来触发文件下载。
对于 IE 和 Edge 浏览器,使用 `navigator.msSaveBlob` 方法来保存 Blob 对象。对于其他现代浏览器,使用 URL.createObjectURL 创建一个临时的下载链接,并将其附加到一个 `<a>` 元素上。然后,模拟点击这个链接来触发文件下载。最后,在下载完成后,移除临时链接并释放资源。
请确保你已经将正确的 JSON 数据传递给 `downloadJsonFile` 函数,并提供了正确的文件名。