什麼是 YAML?適合初學者的指南和範例
By ZonoTools8 min read

什麼是 YAML?
YAML 是一種編寫人類可以輕鬆閱讀的結構化資料的方法 - 考慮設定、清單和巢狀訊息,而無需大量花括號。該名稱的正式意思是 YAML Ain’t Markup Language:它不是 HTML 樣式的文檔標記;它是一種資料格式,類似於 JSON,但針對可讀性進行了調整。
當有人問什麼是 YAML 時,簡短的回答是:**一種使用縮排和簡單標點符號描述清單和地圖的文字格式。程式將 YAML 解析為 JSON 提供的相同類型的物件(物件、陣列、字串、數字、真/假、null)。
基本文法
YAML 基於三個想法:鍵值對、列表和縮排。
- 鍵值對:寫
key:,然後將值寫在同一行或下面縮排。 - 清單: 每個項目以
-破折號開始。 - 縮排:嵌套使用空格(通常每層兩個)。 YAML 關心對齊-如果兩行排列錯誤,它們可能會附加到不同的父行。
這是一個顯示所有三個檔案的小檔案:
app是包含name和port的地圖。tags是兩個字串的 列表。app:下的所有內容都縮進一步,因此屬於app。
app:
name: demo
port: 3000
tags:
- web
- apiYAML 與 JSON
YAML 和 JSON 都描述相同類型的資料(物件和陣列)。 JSON 使用{、}、逗號和帶引號的字串; YAML 更依賴 佈局 並且經常跳過簡單文字的引號。
JSON 在 API 和瀏覽器中無所不在。 YAML 出現在人們手動編輯檔案的地方—設定、管道和基礎設施片段。要進行更深入的比較以及何時選擇每種格式,請閱讀JSON vs YAML: differences and use cases。
這兩種格式都不是普遍「更好」的。當可讀性和差異很重要時,團隊會選擇 YAML;當機器透過 HTTP 交換資料時,團隊會選擇 JSON。
現實世界的用例
Kubernetes 和許多雲端工具都需要 YAML 清單:應該執行什麼、有多少副本、打開哪些連接埠。在任何內容到達叢集之前,操作員會在 Git 中瀏覽這些文件。
CI/CD 系統(GitHub Actions、GitLab CI 等)通常以 YAML 描述管道(步驟、觸發器和環境),因此變更可以像程式碼一樣進行審查。
應用程式設定檔經常使用 YAML 或類似 YAML 的樣式,因此非開發人員可以調整功能標誌或 URL,而無需接觸原始程式碼。
當您不再需要從頭開始手寫 YAML 時,從您已經信任的 JSON 開始並轉換一次會有所幫助 - 請參閱how to convert JSON to YAML step-by-step。
將 JSON 轉換為 YAML
如果您有來自 API、教程或產生器的 JSON,並且想要 更友好的 YAML 佈局,請在瀏覽器中使用 JSON to YAML:貼上 JSON,複製 YAML,然後調整縮排或引號(如果您的工具需要它們)。要稍後仔細檢查語法,請在提交之前透過 YAML Validator 執行檔案。
學習什麼是 YAML 主要是練習:讀取小樣本、尊重縮進,並在值看起來像日期、布林值或帶冒號的句子時將引號視為安全網。