YAML簡單易讀的數(shù)據(jù)序列化格式
YAML介紹
YAML(YAML Ain't Markup Language)是一種可讀的數(shù)據(jù)序列化格式,常用于配置文件和數(shù)據(jù)交換。它以簡潔、易讀和易于編寫為特點,特別適合于配置文件的編寫。
YAML的語法非常簡單,使用縮進表示層級關(guān)系,通常使用兩個空格縮進來表示一級目錄。數(shù)據(jù)類型包括布爾值、數(shù)字、字符串、數(shù)組、映射等,通過特定的格式表示。
YAML有許多用途,包括配置文件、數(shù)據(jù)交換、日志記錄和文檔編寫等。它也經(jīng)常與許多其他技術(shù)一起使用,如Docker、Kubernetes和Ansible等。
YAML語法
在YAML中,使用縮進來表示層級關(guān)系,而不是像JSON那樣使用大括號和方括號。這使得YAML更易讀、更易寫。
name: Reathin
age: 28
address:
city: 杭州
street: 五常街道
語法規(guī)則:
- 大小寫敏感:YAML是區(qū)分大小寫的,因此"name"和"NAME"會被視為兩個不同的鍵。
- 縮進表示層級關(guān)系:使用空格進行縮進,通常使用兩個空格縮進來表示一級目錄。縮進的空格數(shù)目不重要,但要求相同層級的元素左側(cè)對齊。
- 注釋使用#:YAML支持注釋,注釋的內(nèi)容從#字符開始,直到行尾。
- 數(shù)據(jù)結(jié)構(gòu):YAML支持三種數(shù)據(jù)結(jié)構(gòu),包括對象、數(shù)組和純量。對象是一組鍵值對的集合,鍵值對之間用冒號分隔,并使用空格分隔開。數(shù)組是一組有序的值的集合,使用[]表示,值之間用逗號分隔。純量是最小的數(shù)據(jù)單位,可以是數(shù)字、字符串、布爾值等。
- 字符串表示:字符串可以使用雙引號或單引號表示,也可以使用長字符串表示法(在字符串兩側(cè)加上“|”)。字符串內(nèi)部可以使用轉(zhuǎn)義字符“\”來轉(zhuǎn)義特殊字符。
- 數(shù)字表示:數(shù)字可以直接表示,如123、3.14等。
- 布爾值表示:TRUE和FALSE是布爾值的關(guān)鍵詞。
- NULL表示:使用~表示NULL。
- 嵌套結(jié)構(gòu):可以使用冒號后跟空格將一個對象嵌套在另一個對象中。
- 序列化:可以使用“---”來表示文件開頭和結(jié)尾,以及分隔多個文件。
YAML總結(jié)
YAML是一種簡單易讀讀的數(shù)據(jù)序列化格式,常用于配置文件和數(shù)據(jù)交換。它使用縮進和空格來表示數(shù)據(jù)結(jié)構(gòu),具有簡潔、易讀的特點。
常見的YAML使用場景:
- 配置文件:許多軟件和框架使用YAML格式來定義其配置文件,例如Sprintboot、Docker Compose、Kubernetes配置文件等。
- 數(shù)據(jù)傳輸:YAML可以用于在不同系統(tǒng)之間傳輸數(shù)據(jù),例如RESTful API中的請求和響應(yīng)數(shù)據(jù)可以使用YAML格式。
- 日志記錄:某些日志記錄系統(tǒng)使用YAML格式來記錄結(jié)構(gòu)化的日志信息,便于后續(xù)的分析和處理。
- 測試數(shù)據(jù):在軟件測試中,可以使用YAML格式來定義測試數(shù)據(jù),便于管理和維護。