JS簡單實現讀入JSON文件


首先要知道有這個兩個東西:

FileReader 對象允許Web應用程序異步讀取存儲在用戶計算機上的文件(或原始數據緩沖區)的內容,使用 FileBlob 對象指定要讀取的文件或數據。(不過要比較新的瀏覽器才支持)

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);

參考

JSON.parse()

FileReader()

js中!和!!的區別及用法

JavaScript 中的FileReader對象(實現上傳圖片預覽)

Html5 js FileReader接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM