首先要知道有這個兩個東西:
FileReader
對象允許Web應用程序異步讀取存儲在用戶計算機上的文件(或原始數據緩沖區)的內容,使用 File
或 Blob
對象指定要讀取的文件或數據。(不過要比較新的瀏覽器才支持)
JSON.parse()
方法用來解析JSON字符串,構造由字符串描述的JavaScript值或對象。提供可選的reviver函數用以在返回之前對所得到的對象執行變換(操作)。
思路就是用FileReader
讀入一個JSON字符串,然后用JSON.parse()
構造成對象。
window.onload = function() {
let input = document.getElementById("data1");//得到上傳按鈕的對象
//console.log(info); //測試用
input.onchange = function() { //給按鈕的onchange寫一個讀取函數
const file = this.files[0]; //其實是可以擴展到多文件上傳的,不過我們就選第一個,也就是下標0
if (!!file) { //!!是一個js的語法,表示后面的變量不是null/undefined/空串,實用寫法。
const reader = new FileReader(); //實例化一個FileReader對象
reader.readAsText(file, "gbk"); //借助 FileReader 的方法,按照文本格式讀入文件,第二個參數是編碼方式(可空)
reader.onload = function() {
tmp1 = this.result; //然后在FileReader的onload方法里,然后在FileReader的onload方法里,剛剛讀入的文件能以文本的形式得到了
//注意這個對象還是文本,不能拿來直接用,但首先你可以把它帶出來。
//(不推薦也不反對用全局變量)
};
}
};
//...
};
下面你要得到JSON對象,那么很簡單JSON.parse處理即可。
d1 = JSON.parse(tmp1);