YAML(YAML Ain't Markup Language,即YAML不是標記語言)是一種人類友好且易於閱讀的數據序列化標準,主要用於配置檔案和檔案大綱。它支持以下三種主要數據結構:
純量(Scalars)。這是不可分割的值,如字元串、數字、布爾值(真/假)、null、日期等。
數組(Arrays)。這是一個值的列表,通過縮進表示層級關係。數組項可以通過短橫線加空格(- )來定義。
對象(Objects)。這類似於鍵值對的集合,使用冒號(:)分隔鍵和值,鍵後面跟一個空格。對象的屬性可以是一個數組,這被稱為複合對象或哈希。
YAML的特點包括:
大小寫敏感。YAML對大小寫敏感,這意味著大寫和小寫的關鍵字是不同的。
使用空格進行縮進。YAML使用空格而不是制表符來表示層級關係。縮進的空格數量不重要,只要相同層級的元素左對齊即可。
不支持Tab鍵制表符縮進。雖然新版本可能支持Tab鍵,但為了保持兼容性和避免混淆,最好避免使用。
使用流式語法。YAML支持流式語法,允許在單行內編寫多個配置項。
支持注釋。使用井號(#)表示注釋。
支持多種風格。YAML支持多種風格,包括塊風格(使用|或>)和流式風格,其中塊風格用於保留格式,流式風格用於自由格式的文本。
YAML被多種程式語言和腳本支持,適用於配置檔案、日誌檔案、數據交換格式等場景。