用nodejs做了幾個專案,期間一直使用json檔案作為配置檔案,對其不能加注釋、單引號、雙引號等格式問題在前期也踩了不少坑,尤其是多程式猴一起寫**時候,哪個知道那麼多配置名稱是啥子意思,不得不同時維護乙個說明文件,但是我懶,寫**這麼高效的事情,沒事開啟個word文件看,忍不了。
直到有一天,我發現了這篇文章《為什麼說json不適合做配置檔案?》(大家可以點進去看看),天降神功,感謝「聊聊架構」技術推送。此處我把主要內容做個大概介紹
json作為配置檔案的缺點:
缺乏注釋,
過於嚴格,
低訊雜比(多餘字元很無用,如鍵的引號其實是多餘的,花括號將整個文件包圍起來等)
不支援多行字串(在字串中換行,必須使用「\n」進行轉義,想要乙個字串在檔案中另起一行顯示,那就徹底沒辦法了)
但是並沒講怎麼使用,結合我的express框架使用,採用了hjson方案,就開始了我的探索初體驗。
替代方案:hjson
hjson 是一種基於 json 的格式,但具有更大的靈活性,可讀性也更強。它支援注釋、多行字串、不帶引號的鍵和字串,以及可選的逗號。如果你想要 json 結構的簡單性,同時對配置檔案更友好,那麼可以考慮 hjson。有一些可以將 hjson 轉換為 json 的命令列工具,如果你使用的工具是基於 json 的,可以先用 hjson 編寫配置,然後再轉換成 json。json5 是另乙個與 hjson 非常相似的配置語言。
npm 安裝
npm install hjson
hjson包的github位址
複製**
「來人吶,上**!!!」
var fs=require("fs");
var _config=fs.readfilesync("./config/config.hjson", "utf8");
var _configobj = hjson.parse(_config);
// var text2 = hjson.stringify(_configobj);
console.log(_configobj)
console.log(_configobj.name)
列印結果:
express-demo
複製**
心情日記:這幾天我司組織了一場規模浩大的桌球競技團體賽,換了塑料球的我,直接被乙個我很有勝算的兄嘚給虐爆了,寫完部落格,我要洗洗睡(哭一會),晚安!
JSON新增注釋的問題
json有兩種資料結構 名稱 值對的集合 key value樣式 值的有序列表 就是array 而在json的文件中說明只要是不符合上面兩種結構的都不被支援,並提示錯誤 新增注釋 或者 在json檔案中是不允許的 那麼json如何才能加注釋?1.使用key value新增 2.使用json.mini...
JSON檔案內容加注釋的幾種方法
json規範,不支援注釋。之所以不允許加注釋,主要是防止 過多的注釋,影響了檔案本身的資料載體的目的。有些檔案,尤其是配置檔案,加入解釋說明一些資料項的含義,是有必要的。1 使用json5規範 json5規範允許在json檔案中加入注釋 單行注釋,多行注釋均可。2 直接用json schema,使用...
Android新增模組的配置檔案
最近在研究android的觸控螢幕框架,已經理清楚了driver inputhub inputdevice inputmanager input module之間的關係,但是其中,需要引入觸控螢幕的配置引數問題,android需要乙個配置檔案來宣告當前的觸控螢幕型別,所以需要在檔案系統中宣告乙個.i...