1. 基本语法
- 大小写敏感
- 使用缩进表示层级关系,k: v,使用空格分割k,v
- 缩进时不允许使用Tab键,只允许使用空格。换行
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- # 表示注释,从这个字符一直到行尾,都会被解析器忽略。
支持的写法:
- 对象:键值对的集合,如:映射(map)/ 哈希(hash) / 字典(dictionary)
- 数组:一组按次序排列的值,如:序列(sequence) / 列表(list)
- 纯量:单个的、不可再分的值,如:字符串、数字、bool、日期
properties表示法
person.name=张三 person.age=18 person.birthDay=2010/10/12 12:12:12 person.like=true person.child.name=李四 person.child.age=12 person.child.birthDay=2018/10/12 person.child.text[0]=abc person.child.text[1]=def person.dogs[0].name=小黑 person.dogs[0].age=3 person.dogs[1].name=小白 person.dogs[1].age=2 person.cats.c1.name=小蓝 person.cats.c1.age=3 person.cats.c2.name=小灰 person.cats.c2.age=2
yaml表示法
person: name: 张三 age: 18 birthDay: 2010/10/10 12:12:12 like: true child: name: 李四 age: 20 birthDay: 2018/10/10 text: ["abc","def"] dogs: - name: 小黑 age: 3 - name: 小白 age: 2 cats: c1: name: 小蓝 age: 3 c2: {name: 小绿,age: 2} #对象也可用{}表示
3. 细节
- birthDay 推荐写为 birth-day
- 文本:
- 单引号不会转义【\n 则为普通字符串显示】
- 双引号会转义【\n会显示为换行符】
- 大文本
|
开头,大文本写在下层,保留文本格式,换行符正确显示>
开头,大文本写在下层,折叠换行符
- 多文档合并
- 使用
---
可以把多个yaml文档合并在一个文档中,每个文档区依然认为内容独立
4. 小技巧:lombok
简化JavaBean 开发。自动生成构造器、getter/setter、自动生成Builder模式等
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>compile</scope> </dependency>
使用@Data
等注解