node讀寫json文件(進階)


該方法可用於通過調接口的方式修改配置文件。步驟如下:

  1. 創建一個json格式的文件,如:test1.json,內容就是一個json,如:{"name":"li"}
  2. 通過fs.readFile()讀取到test1.json后,將內容轉為JSON格式
  3. 修改完成后再轉回字符串格式
  4. 保存修改(就是用修改后的完整內容覆蓋修改前的內容,包括沒改的部分)

代碼

fs.readFile('test1.json','utf8',function (err, data) {
        if(err) console.log(err);
        var test1=JSON.parse(data);
        test1.name="li";
        var t = JSON.stringify(test1);
        fs.writeFileSync('test1.json',t)
});

正常情況下從JSON文件讀取到字符后再通過JSON.parse沒什么問題,只要格式不出錯。

有時在確保JSON格式正確時仍然會出現unexpected token異常

經過調查發現里面有不會顯示的unicode字符

於是確定是UTF-8的問題,utf-8分有dom版和無dom版,一般編輯器不刻意設置會默認保存為帶dom的utf8

解決辦法是先將讀到的文件轉成二進制,然后檢索dom符號刪除

代碼實現部分

function readText(pathname) {
    var bin = fs.readFileSync(pathname);
 
    if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {
        bin = bin.slice(3);
    }
 
    return bin.toString('utf-8');
}

 


免責聲明!

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



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