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 ...