背景:读取某zip压缩包,并解析压缩包里的config.json文件
解决方法:
需要注意的是:如果我们不知道config.json存在在哪个文件夹下,这时有可能存在在某个深层层级下的文件夹下,所以我们要对zip解析出来的文件夹进行一个循环遍历。
需要的依赖:jszip
import JSZip from "jszip";
JSZip.loadAsync(file.raw).then(function(zip) {
for (let key in zip.files) { // 循环遍历文件夹下的文件
if (!zip.files[key].dir) {
/**
* 可以在层级中检测自己想要的文本类型
* 替换即可:如 docx jpg png pdf 等
*/
// if (/\.(json)$/.test(zip.files[key].name)) {
if (zip.files[key].name == "config.json") {
var base = zip.file(zip.files[key].name).async('string')
// uint8array base64 string
// 可以选择想要的类型输出,比如解图用base64,文本string等
base.then(res => {
// res 是文件里的内容,下面可以对内容进行操作
let versionObj = res && JSON.parse(res) || {}
})
}
}
}})