yaml(yml)配置文件

介绍

yaml,YAML Ain’t a Markup Language,YAML不是一种标记语言的递归缩写

是一个可读性高,以数据为中心的语言,与xml、properties相比,配置更加简单

文件后缀

xxx.yml 或 xxx.yaml

语法

树形结构,相同的前缀只需要写一次

  • 使用 空格缩进 来表示层级关系,空格数不重要,相同层级左对齐即可。不能用tab
  • 使用key: value,:后面要加一个空格(重要)
  • 大小写敏感
  • #表示注释
db: 
  url: 127.0.0.1
  port: 8080
  name: root
#  pwd: 123456
  pwd: root

行内写法(不推荐)

类似json

db: {url: 127.0.0.1,port: 8080,name: root,pwd: root}

字符串

如上面的例子,不需要加双引号、单引号,在yml中,双引号、单引号有特殊意义:

  • 加单引号:将字符串里面的特殊字符原样输出
    pwd: '123\n456'会输出为:pwd: 123\n456

  • 加双引号 :不会将字符串里面的特殊字符原样输出
    pwd: "123\n456"会输出为:pwd: 123换行456

基本数据类型

int

age: 123
length: 0b1010_0111_0100_1010_1110    #二进制表示

float:

pi: 3.14
a: 6.8523015e+5  #可以使用科学计数法

boolean

boy: TRUE  #true,True都可以
girl: FALSE  #false,False都可以

null

null:
    nodeName: 'node'
    parent: ~  #使用~表示null

日期时间

日期必须使用ISO 8601格式,即yyyy-MM-dd

date: 2018-02-17

时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区

datetime: 2018-02-17T15:02:31+08:00

数组

以 - 开头的行表示构成一个数组:

languages:
  - java
  - c
  - python

数组行内写法(不推荐)

languages: [java,c,python]

三个横线划分多个配置

在一个文件中,可用连续三个横线 --- 区分多个部分

userId: 1
username: "lisi"
password: '123456'
address:
  province: 山东
  city: "济南 : ss"
hobbyList:
  - 游泳
  - 跑步
---
userId: 2
username: "lisi2"
password: '123456'
address:
  province: 河南
  city: "郑州 : ss"
hobbyList:
  - 下棋
  - 画画

...

三个点 … 表示文件结尾

还有选择性的连续三个点号 ... 用来表示文件结尾。

userId: 2
username: "lisi2"
password: '123456'
address:
  province: 河南
  city: "郑州 : ss"
hobbyList:
  - 下棋
  - 画画

...

更多参见:
https://www.runoob.com/w3cnote/yaml-intro.html


原文出处:/show_1EF5qtN5iYYK.html