前端⽣成 json ⽂件并导出
1、拿到后端返回的json格式的数据,
例如:
{name:'json文件',age:'18'}
2、把这个内容导出为.json格式的文件
//生成json文件
createJSON(data, filename){//参数1:json数据;参数2:自定义导出的文件名
if(!data) {
layer.msg('无数据', {icon: 7})
return;
}
if(!filename) filename = '未定义.json' //如果没有文件名,设置默认文件名
if (typeof data === "object") data = JSON.stringify(data)
let blob = new Blob([data], {type: 'text/json'})
let e = document.createEvent('MouseEvents')
let a = document.createElement('a')
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
},
//调用
this.createJSON(JsonData,'春天.json')//注意这个名字必须带.json
方法2:
this.www={a:'xzx',b:'552'}
download(){
const {cells: jsonArr} = this.www.toJSON()
var data = JSON.stringify(jsonArr)
let uri = 'data:text/csv;charset=utf-8,ufeff' + encodeURIComponent(data);
let link = document.createElement("a");
link.href = uri;
link.download = "xxxxxx.json";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},