Element 上传JSON文件,解析内容
- 使用 element 上传组件,FileReader 解析 JSON 文件。
template 代码
<el-dialog title="提示" :visible.sync="dialogVisible" width="25%">
<el-row class="dialogBox">
<el-upload
drag
action
accept=".json"
:auto-upload="false"
:on-change="updateReason"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">
* 只能上传1个JSON文件
</div>
</el-upload>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCacel">取 消</el-button>
<el-button type="primary" @click="handleOK">确 定</el-button>
</span>
</el-dialog>
JS方法代码
// 每次最多只能上传一个,多余的删除,保留最新的,上传文件变化触发
updateReason(file, fileList) {
if (fileList.length === 2) {
fileList.shift();
}
this.fileList = fileList;
},
// 确定方法,解析JSON文件
handleOK() {
let reader = new FileReader(); //新建一个FileReader
reader.readAsText(this.fileList[0].raw, "UTF-8"); //读取文件
reader.onload = (evt) => {
//读取文件完毕执行此函数
const dataJson = JSON.parse(evt.target.result);
// dataJson 就是读取的文件内容
this.dialogVisible = false;
};
},
readAsText 方法可以将 Blob 或者 File 对象转根据特殊的编码格式转化为内容 (字符串形式)
这个方法是异步的,也就是说,只有当执行完成后才能够查看到结果,如果直接查看是无结果的,并返回 undefined
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本