YAML基本语法

YAML:以数据为中心,比json、xml等更适合做配置文件,yaml必须遵守的三个规则

  • 缩进

    yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。一定不能使用tab键

  • 冒号

    每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)

  • 短横线

    想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分

1.基本语法规则:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

2.支持的数据结构

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 字面量(数字、字符串、布尔值):单个的、不可再分的值

3.具体写法

  • 字面量(数字、字符串、布尔值)
    k: v :字面量直接写,字符串默认不用加上单引号或者双引号
    双引号:会转义特殊字符
    单引号:不会转义字符串里边的特殊字符;特殊字符会作为本身想表示的意思

    1
    2
    3
    name: zhangsan
    age: 20
    isBoss: false
  • 数组
    多行写法使用- 值来表示数组中的一个元素,需要注意缩进;单行使用[值,值] 来表示一个数组

    1
    2
    3
    4
    5
    6
    7
    8
    #多行结构
    friends:
    - zhangsan
    - lisi
    - wangwu

    #单行结构
    friend: [zhangsan,lisi,wangwu]
  • 对象
    多行写法:key:value的形式,使用多行写法需要注意缩进
    单行写法:使用{key:value}的形式书写

    1
    2
    3
    4
    5
    6
    7
    #多行结构
    friend:
    name:zhangsan
    age:20

    #单行结构
    friend: {name:zhangsan,age:20}

4..properties文件和.yml文件之间的不同

  • .properties文件中的写法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    person.last-name=\u674E\u56DB
    person.age=12
    person.birth=2017/12/15
    person.boss=false
    person.maps.k1=v1
    person.maps.k2=14
    person.lists=a,b,c
    person.dog.name=dog
    person.dog.age=1
  • .yml文件中的写法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    person:
    last-name: zhangsan
    age: 20
    birth: 2017/12/15
    boss: false
    maps:{key1:value1,key2:value2}
    lists:[a,b,c]
    dog:
    name: dog
    age: 1

参考:

YAML 语法

-------------本文结束感谢您的阅读-------------