yaml 文件格式简介
from: http://www.cnblogs.com/phpgo/p/6480107.html
.yaml 文件格式簡(jiǎn)介
命名
YAML 的意思其實(shí)是:"Yet Another Markup Language"(仍是一種置標(biāo)語(yǔ)言)的縮寫(xiě)。
功能
YAML的語(yǔ)法和其他高階語(yǔ)言類(lèi)似,并且可以簡(jiǎn)單表達(dá)清單、散列表,標(biāo)量等資料形態(tài)、。
它使用 空白符號(hào)縮排 和 大量依賴(lài)外觀的特色,特別適合用來(lái)表達(dá)或編輯數(shù)據(jù)結(jié)構(gòu)、各種設(shè)定檔、傾印除錯(cuò)內(nèi)容、文件大綱(例如:許多電子郵件標(biāo)題格式和YAML非常接近)。
盡管它比較適合用來(lái)表達(dá)階層式(hierarchical model)的數(shù)據(jù)結(jié)構(gòu),不過(guò)也有精致的語(yǔ)法可以表示關(guān)聯(lián)性(relational model)的資料。
由于YAML使用空白字符和分行來(lái)分隔資料,使的他特別適合用 grep、Python、Perl、Ruby 操作。
其讓人最容易上手的特色是巧妙避開(kāi)各種封閉符號(hào),如:引號(hào)、各種括號(hào)等,這些符號(hào)在嵌套結(jié)構(gòu)中會(huì)變得復(fù)雜而難以辨認(rèn)。
格式
多行縮進(jìn)
數(shù)據(jù)結(jié)構(gòu)可以用類(lèi)似大綱的縮排方式呈現(xiàn),結(jié)構(gòu)通過(guò) 縮進(jìn) 來(lái)表示,連續(xù)的項(xiàng)目通過(guò)減號(hào)“-”來(lái)表示,map 結(jié)構(gòu)里面的 key/value 對(duì)用冒號(hào)“:”來(lái)分隔。樣例如下:
house:family:name: Doeparents:- John- Janechildren:- Paul- Mark- Simoneaddress:number: 34street: Main Streetcity: Nowheretownzipcode: 12345注意:字串不一定要用雙引號(hào)標(biāo)識(shí);
在縮排中空白字符的數(shù)目并不是非常重要,只要相同階層的元素左側(cè)對(duì)齊就可以了(不過(guò)?不能使用TAB字符);
允許在文件中加入選擇性的空行,以增加可讀性;
在一個(gè)檔案中,可同時(shí)包含多個(gè)文件,并用“——”分隔;
選擇性的符號(hào)“...”可以用來(lái)表示檔案結(jié)尾(在利用串流的通訊中,這非常有用,可以在不關(guān)閉串流的情況下,發(fā)送結(jié)束訊號(hào))。
單行縮寫(xiě)
YAML也有用來(lái)描述好幾行相同結(jié)構(gòu)的數(shù)據(jù)的縮寫(xiě)語(yǔ)法,數(shù)組用'[]'包括起來(lái),hash用'{}'來(lái)包括。因此,上面的這個(gè)YAML能夠縮寫(xiě)成這樣:
house:family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }?
舉例:
john.yaml 文件:
name: John Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name: Jenny Smith age 12
數(shù)組表示:
<?php $john = array('name'=> 'John Smith','age'=> 37,'spouse'=> array('name'=> 'Jane Smith','age'=> 25),'children'=> array(0 =>array('name'=> 'Jimmy Smith','age'=> 5),1 =>array('name'=> 'Jenny Smith','age'=> 3)) );PHP 解析 Yaml 文件的類(lèi):?
syck:http://pecl.php.net/package/syck
總結(jié)
以上是生活随笔為你收集整理的yaml 文件格式简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Kubernetes学习笔记---常用命
- 下一篇: 最大似然估计算法