格式化與驗證工具

用於格式化、驗證與比對結構化資料的工具。所有處理都在您的瀏覽器中完成,資料不會上傳。

選擇合適的格式化工具

需要縮排、壓縮或瀏覽一份資料時使用 JSON 格式化工具;當兩個本該相同的回應卻不一致時使用 JSON 比較工具;當一份文件必須以字串形式嵌入另一份文件時,使用 JSON 字串化工具。

設定檔請使用 YAML 驗證工具,因為那裡真正棘手的不是語法,而是縮排與隱式型別。文件與 SOAP 內容則使用 XML 格式化工具,因為混合內容代表空白有時也是資料的一部分。

使用真正的解析器,而不是正規表示式

這個分類中的每個工具,都會先正確解析文件再輸出任何內容,這才能指出輸入從哪一行、哪一欄開始不再合法,而不是只說「某處有錯」。這也是為什麼在這裡能順利格式化的文件,在你自己語言的解析器中也能載入。

代價是嚴格。這些解析器遵循規格,而不是某些函式庫額外加上的寬鬆行為,所以結尾逗號、用來縮排的 Tab、未跳脫的 & 符號,在這裡都是錯誤,即使你環境中的某個工具原本會接受它們。

格式化改寫的是位元組,不是語意——但有例外

為文件加上縮排,其實是解析後再重新輸出,過程中有幾項內容會被正規化。在 JSON 中,重複的鍵會合併,非常大的整數會失去精度。在 YAML 中,錨點會被展開,轉換後註解會消失。在 XML 中,屬性順序與註解會保留,但混合內容裡的空白屬於資料,因此刻意不予更動。

如果只是在除錯時閱讀資料,這些都無關緊要;但如果格式化後的輸出就是你要提交的內容,那就很重要。當某份文件是可信來源時,請格式化一份副本,並在取代原檔前先比對差異。

哪種格式該用在哪裡

JSON 是資料交換的預設選擇:沒有註解、型別沒有歧義,而且到處都有解析器。YAML 的價值在設定檔,那裡註解與重複使用很重要,而且檔案會由人手動編輯。XML 則留存在結構描述、命名空間與簽章屬於契約一部分的地方,企業與政府系統整合大多如此。

彼此之間的轉換很少沒有代價。JSON 得不到 YAML 錨點的好處,還會失去註解;XML 屬性在 JSON 中沒有明確的對應方式,每個轉換器都自創一套慣例。請在對接系統確實需要時才轉換,而不是為了讓檔案看起來整齊。