1.前言
- 本节主要讲述如何将后台返回的JSON以文件的形式保存到本地
- 官方文档
- 兼容性(转载)
Browser |
Constructs as |
Filenames |
Max Blob Size |
Dependencies |
Firefox 20+ |
Blob |
Yes |
800 MiB |
None |
Firefox < 20 |
data: URI |
No |
n/a |
Blob.js |
Chrome |
Blob |
Yes |
500 MiB |
None |
Chrome for Android |
Blob |
Yes |
500 MiB |
None |
Edge |
Blob |
Yes |
? |
None |
IE 10+ |
Blob |
Yes |
600 MiB |
None |
Opera 15+ |
Blob |
Yes |
500 MiB |
None |
Opera < 15 |
data: URI |
No |
n/a |
Blob.js |
Safari 6.1+* |
Blob |
No |
? |
None |
Safari < 6 |
data: URI |
No |
n/a |
Blob.js |
Safari 10.1+ |
Blob |
Yes |
n/a |
None |
2.基本思路
- 先将JSON数据转换成blob数据
- 使用FileSaver插件将blob数据转换成文件进行保存
3.blob数据转换
- Blob接收一个数组,数组元素必须是字符串或者数字,不能是数组或者对象
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"})
var dataData = [
{ name: "张三", age: 20 }, { name: "李四", age: 21 }, { name: "王五", age: 22 }
]
var blob = new Blob([JSON.stringify(dataData)], {type : 'application/json'})
3.FileSaver基本使用
<script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
var blob = new Blob(["Hello, world!"], { type: "text/plain;charset=utf-8" })
saveAs(blob, "data.json")
4.扩展
- 在不同的环境中引入该插件时,使用方式上有一些差异,具体的可以看源码进行分析
(function(global, factory) {
if (typeof define === "function" && define.amd) {
console.log('require.js引入')
define([], factory);
} else if (typeof exports !== "undefined") {
console.log('node环境引入')
factory();
} else {
console.log('script标签引入')
var mod = {
exports: {}
};
factory();
global.FileSaver = mod.exports;
}
}(this, someFn)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了