JSON 與 YAML:兩大關鍵資料格式

在現代開發中,資料的儲存與傳輸主要使用 JSON 與 YAML。這兩者各有所長,適用於不同的場景。

JSON 與 YAML 的轉換及其適用場景

JSON (JavaScript Object Notation)

  • 特點:輕量且解析速度快。與 JavaScript 具有極高的親和性。
  • 用途:Web API (REST)、前端的請求/回應通訊。
  • 弱點:不支援註解(Comment)。對於結尾逗號(Trailing Comma)的要求非常嚴格。

YAML (YAML Ain’t Markup Language)

  • 特點:人類可讀性極高(Human-readable)。
  • 用途:設定檔(Docker, Kubernetes, GitHub Actions)、CI/CD 流程。
  • 弱點:對於縮排(空白字元)的控制非常嚴格。相較於 JSON,其解析邏輯較為複雜。

需要相互轉換的情況

  • 編輯設定檔:當您想要將從 API 取得的 JSON 設定轉換為易於閱讀的 YAML 格式,以便在本地端進行編輯時。
  • 資料導入:為了可讀性而使用 YAML 管理設定,但為了讓程式處理而需要轉換為 JSON 格式並透過 API 發送時。
  • 除錯(Debug):想將壓縮成一行的難讀 JSON 轉換為 YAML,以便快速掌握其資料結構時。

範例:用 YAML 審閱 API 設定

假設你從 API 收到下面這份 JSON 設定。

{
  "retries": 3,
  "timeoutMs": 30000,
  "features": {
    "csvExport": true,
    "betaDashboard": false
  }
}

審閱時轉成 YAML,可以讓設定的層級更易讀。

retries: 3
timeoutMs: 30000
features:
  csvExport: true
  betaDashboard: false

這種形式下,更容易確認逾時是否以毫秒為單位、功能旗標位於哪一層。

在 DevToolKits 進行無縫轉換

使用 JSON ⇔ YAML 轉換工具,只需單擊一下即可在兩種格式之間進行雙向轉換。貼上 JSON 即可輸出 YAML,貼上 YAML 即可輸出 JSON,非常簡單。

💡 注意事項:由於 JSON 不支援註解,從 YAML 轉換為 JSON 時,原有的註解將會消失。因此,此工具最適合用於純資料結構的轉換。

常見問題

JSON 與 YAML 該用哪一個?

機器之間的通訊(Web API)適合解析快、歧義少的 JSON;人類編輯的設定檔(Docker、Kubernetes、CI/CD)適合可寫註解且易讀的 YAML。由於兩者可互轉,依用途分開使用是基本原則。

轉換 YAML 後註解不見了。

JSON 沒有註解的概念,因此 YAML → JSON → YAML 來回轉換會遺失註解。想保留註解的設定檔,請在轉換後手動補回,或只用於純資料結構的轉換。

YAML 縮排出現錯誤。

YAML 對空白縮排很嚴格,且不能使用 Tab 字元。層級錯位會導致解析錯誤或非預期的結構。先轉成 JSON 確認結構,再轉回 YAML,較容易找出縮排的問題。