![78b9d56677bddd7aeb453cdd971f7305.png](https://i-blog.csdnimg.cn/blog_migrate/c6fe24c1762c057bcd0dcd3d7b77e15d.jpeg)
(© Chiara Salvadori/Getty Images)
❝本题摘自于我 github 上的面试每日一题:https://github.com/shfshanyue/Daily-Question,并有大厂面经及内推信息,可「在左下角打开本题原文链接」
❞
json 视为字符串,可以利用 DataURL
进行下载
Text -> DataURL
除了使用 DataURL,还可以转化为 Object URL 进行下载
Text -> Blob -> Object URL
可以把以下代码直接粘贴到控制台下载文件
function download (url, name) {
const a = document.createElement('a')
a.download = name
a.rel = 'noopener'
a.href = url
// 触发模拟点击
a.dispatchEvent(new MouseEvent('click'))
// 或者 a.click()
}
const json = {
a: 3,
b: 4,
c: 5
}
const str = JSON.stringify(json, null, 2)
// 方案一:Text -> DataURL
const dataUrl = `data:,${str}`
download(dataUrl, 'demo.json')
// 方案二:Text -> Blob -> ObjectURL
const url = URL.createObjectURL(new Blob(str.split('')))
download(url, 'demo1.json')
总结
- 模拟下载,可以通过新建一个
标签并设置
url
及download
属性来下载 - 可以通过把
json
转化为dataurl
来构造 URL - 可以通过把
json
转换为Blob
再转化为ObjectURL
来构造 URL
更多面试
![700c45f01c0a6b42083d75ce448e4af6.png](https://i-blog.csdnimg.cn/blog_migrate/329c6da750877c2dc29a0959c807e81d.jpeg)
![1c40e97af80a10c2eede6f4ee32244ee.png](https://i-blog.csdnimg.cn/blog_migrate/66e1fc51192e259903cf75b289853345.jpeg)
![4c97be95e2a6b0a22c3854863d520eca.png](https://i-blog.csdnimg.cn/blog_migrate/fa9b158dbb03fc5fe91c7d2d71c7faef.jpeg)
关注我
我是山月,正致力于「每天用五分钟能够看完的简短答案回答一个大厂高频面试题」。扫码添加我的微信,备注进群,加入高级前端进阶群.
![255a4d3604d12d4e8671971a06db7e39.png](https://i-blog.csdnimg.cn/blog_migrate/8ad681aec3d580d984e0db6d8d8a3ddc.jpeg)
欢迎关注公众号【互联网大厂招聘】,定时推送大厂内推信息及面试题简答,每天学习五分钟,半年进入大厂中
![10264f2fd46d7bdcb0a087da87a3f06d.png](https://i-blog.csdnimg.cn/blog_migrate/d67488807b09afe6c5edff1b67751776.jpeg)