一般格式化工具做錯的三件事
格式化 JSON 早就被解決了,會做這件事的頁面也多到不差這一個。有趣的是這些頁面在美化輸出之外還做了什麼——我翻過「json formatter」第一頁的搜尋結果後,有三個習慣特別刺眼:
所以這個頁面把這三件事做成不一樣,並且在上面加上格式轉換矩陣:
- 「免註冊就能儲存」通常等於公開存放。 好幾個熱門的格式化工具都提供分享連結:你的文件會被 POST 到他們的伺服器、存起來,而且——其中一個甚至在自己的介面上這樣寫——「它會變成公開的」。這裡什麼都不會存,也不會產生分享連結;文件只留在你的分頁裡,關掉就消失。
- 它們會吃掉你的註解。 大多數線上格式化工具會把檔案解析成資料結構再印出來,這個過程會默默刪掉每一則 YAML 與 XML 註解。這一個是透過文件模型來格式化,所以註解、鍵的順序、CDATA 區段與處理指令都會留下來——你可以重新格式化一份有註解的設定檔,再拿來比對,而不會弄丟別人寫在值旁邊的說明。
- 「格式錯誤」不是診斷。 當文件有 200 行時,一條寫著 JSON 無效的紅色橫幅什麼都沒告訴你。這裡的錯誤會附上行與欄,再加上白話的原因——尾逗號、單引號、鍵沒有加引號、JSON 裡有註解、字串沒有結束、結束標籤對不上——YAML、XML 與 TOML 也一樣。
全部都在本機執行:解析器是隨需載入的(所以在你真的貼上東西之前,頁面一直很輕),文件永遠不離開分頁,也沒有分享連結可以外洩。格式之間的轉換會經過一個通用的值模型,它對自己的限制很誠實,並把限制寫在說明裡:XML 屬性會變成「@name」鍵,重複的子節點會變成陣列;YAML 錨點會被展開;註解在格式化時留得住,但轉換時留不住。還有一個刻意的省略:TOML 與 YAML 無法表示每一種 JSON 形狀,所以無法表達的轉換會直接大聲失敗,而不是寫出微妙的錯誤結果。