格式化與驗證工具
用於格式化、驗證與比對結構化資料的工具。所有處理都在您的瀏覽器中完成,資料不會上傳。
- XML 格式化工具貼上 XML 即可將它縮排成易讀的樣子或壓成一行,同時檢查是否格式正確。錯誤會指出確切的行與列。所有處理都在你的瀏覽器中完成,不會上傳任何內容。
- YAML 驗證工具貼上 YAML 即可檢查語法並轉成 JSON,切換方向也能把 JSON 轉回 YAML。錯誤會指出確切的行與列。所有解析都在瀏覽器中完成,因此含有密鑰的 manifest 不會被上傳。
- JSON 格式化工具貼上 JSON 即可立即格式化與驗證。所有處理都在您的瀏覽器中完成,資料不會上傳到伺服器。
- JSON 比對工具貼上兩份 JSON,即可依路徑列出所有新增、刪除與變更的值。比對會忽略鍵的順序,只回報實際的差異。
- JSON 字串化工具將 JSON 轉換成可直接貼進程式碼的跳脫字串,或把跳脫字串還原成易讀的 JSON。
選擇合適的格式化工具
需要縮排、壓縮或瀏覽一份資料時使用 JSON 格式化工具;當兩個本該相同的回應卻不一致時使用 JSON 比較工具;當一份文件必須以字串形式嵌入另一份文件時,使用 JSON 字串化工具。
設定檔請使用 YAML 驗證工具,因為那裡真正棘手的不是語法,而是縮排與隱式型別。文件與 SOAP 內容則使用 XML 格式化工具,因為混合內容代表空白有時也是資料的一部分。
使用真正的解析器,而不是正規表示式
這個分類中的每個工具,都會先正確解析文件再輸出任何內容,這才能指出輸入從哪一行、哪一欄開始不再合法,而不是只說「某處有錯」。這也是為什麼在這裡能順利格式化的文件,在你自己語言的解析器中也能載入。
代價是嚴格。這些解析器遵循規格,而不是某些函式庫額外加上的寬鬆行為,所以結尾逗號、用來縮排的 Tab、未跳脫的 & 符號,在這裡都是錯誤,即使你環境中的某個工具原本會接受它們。
格式化改寫的是位元組,不是語意——但有例外
為文件加上縮排,其實是解析後再重新輸出,過程中有幾項內容會被正規化。在 JSON 中,重複的鍵會合併,非常大的整數會失去精度。在 YAML 中,錨點會被展開,轉換後註解會消失。在 XML 中,屬性順序與註解會保留,但混合內容裡的空白屬於資料,因此刻意不予更動。
如果只是在除錯時閱讀資料,這些都無關緊要;但如果格式化後的輸出就是你要提交的內容,那就很重要。當某份文件是可信來源時,請格式化一份副本,並在取代原檔前先比對差異。
哪種格式該用在哪裡
JSON 是資料交換的預設選擇:沒有註解、型別沒有歧義,而且到處都有解析器。YAML 的價值在設定檔,那裡註解與重複使用很重要,而且檔案會由人手動編輯。XML 則留存在結構描述、命名空間與簽章屬於契約一部分的地方,企業與政府系統整合大多如此。
彼此之間的轉換很少沒有代價。JSON 得不到 YAML 錨點的好處,還會失去註解;XML 屬性在 JSON 中沒有明確的對應方式,每個轉換器都自創一套慣例。請在對接系統確實需要時才轉換,而不是為了讓檔案看起來整齊。
