經過一篇YAML來學習YAML

yaml 兼容 json,至今已發展至 1.2版。支持N多種編程語言。官網:http://www.yaml.org/html

格式在線校驗:http://nodeca.github.io/js-yaml/java

 

下面就經過一篇YAML文件,來學習YAML:node

%yaml 1.2
%TAG !tagRef! tag:yaml.org,2002:  # %TAG !name! tag:url
--- #塊分隔符。既是指令聲明的結束符,又是文檔塊的分割標記
yaml online study: http://nodeca.github.io/js-yaml/ # 單行表示時,在 : 後面得有空格。這個是yaml學習校驗的網站。能夠在這裏進行測試學習

basic structures: # 折行表示時,在 : 後面則沒必要有空格
    indent style: 文檔的結構,由縮進來決定。爲了保證可維護性,tab鍵不能用做縮進,主要由於不一樣操做系統,對tab處理不一樣。
    separation space: 空格是字符 分隔 符(包括tab)
    comment: 註釋。使用 # 來做註釋
    tag:  # 標記,能夠分爲全局tag,和Local tag
        - global :  global 能夠被其餘的 yaml引用,且要保證惟一性。採用url schema,用於定位全局標籤的。相似於xml namespace.
        - local : # local不會被其餘yaml使用,也不須要保證惟一性。local tag通常採用 ! 做爲標示符
            primary tag handle:  使用! 做爲一級標籤處理
            secondary tag handle : # 使用!! 做爲二級標籤處理。一般是指定數據類型
                 !!map {
                        ? !!str "First occurrence"
                        : &A !!str "Value",  # 聲明一個anchor A
                        ? !!str "Second occurrence"
                        : *A,  # use the anchor A
                    }
            named tag handle : #須要使用 %TAG 來定義的。the follow is a named tag
                examples: {
                    !tagRef!str foo bar : url # 這裏引用了在文檔開始定義的命名標籤
                }
        
    directive: 
        - yaml : yaml指令用來指定當前文檔的YAML版本。它的格式是 %yaml $version。該指令放在文件首行,第二行應該是塊分隔符。
        - tag:  參考上面的tag說明
    
    datatype:
        literal : # 通常字面量
            string :  字符串,能夠使用 !!str 來限定數據類型
            int : 整數,能夠使用 !!int 來限定數據類型
            float : 浮點數,能夠使用 !!float 來限定數據類型
            bool : 布爾值,能夠使用 !!bool 來限定數據類型。參考http://yaml.org/type/bool.html
            null: 空值。能夠使用!!null來限定數據類型
            timestamp: 時間戳。能夠使用!!timestamp來限定數據類型
            binary:  Base64的字符串表示。能夠使用!!能夠使用!!binary來限定數據類型來限定數據類型。參考http://yaml.org/type/binary.html
        collection : #集合
            sequence: #序列,也稱爲有序集合。
                - 張三
                - 李四
                - 王五
            set: # 集合。能夠將其理解爲java中的 hashMap,key不爲null,value是null.
                ? hello
                ? yaml set
            map: # Unordered set of key: value pairs.
                cloc2: 
                    Clark : Evans,
                    Brian : Ingerson
                    Oren : Ben-Kiki
            omap: # ordered set of key: value pairs.
                cloc2: 
                    Clark : Evans,
                    Brian : Ingerson
                    Oren : Ben-Kiki
    textBlock:  #文本塊
            block1: |
                absdfas
                sdfasdf
                asdfas
            block2: >
                absdfas
                sdfasdf
                asdfas
            block3: "
                absdfas
                sdfasdf\n
                asdfas"
            block4: '
                absdfas
                sdfasdf\d
                asdfas'
    anchor: # 錨點
        a: !!str &a1 b  # 字符串b 處加了錨點a1
        c: *a1 # 引用錨點a1
... 
相關文章
相關標籤/搜索