Yaml 编写入门
yml 我地在springboot 里见得多了.但yaml 跟yml 是同一种语法的东西, 历史原因例如springboot, docker-compose 仍然在使用yml格式。但是一些新的tools, 例如ansible 的playbook, k8s 的资源编排已经默认使用yaml后序.本文来深究yaml的编写方式。
   ·  
 yml 我地在springboot 里见得多了.
  但yaml 跟yml 是同一种语法的东西, 历史原因例如springboot, docker-compose 仍然在使用yml格式。
但是一些新的tools, 例如ansible 的playbook, k8s 的资源编排已经默认使用yaml后序.
本文来深究yaml的编写方式。
1. yaml 基本语法:
- 使用双空格作为缩进, 某些编辑器下用tab也行, 但要看tab在那个编辑器内部是怎么实现的, 所以用tab并不安全
- 缩进的空格数目并不重要, 只要跟同层级的元素对齐, 但是国际惯例是缩进两个空格。
- 使用# 来comment, 从这个字符 开始一知道到行尾,都是被comment的语句。
2. yaml 支持的数据结构:
2. 1 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
写法1: 用冒号结构表示
例如
Jack:
  name: Jack Black
  age: 20
Bill:
  id: 20
  height: 180
写法2: 用大括号来写行内对象
Jack: {name: Jack Black, age: 20}
Bill: {id: 20, height: 180}
2. 2 数组, 又叫列表(List)
写法1: 一组以 - 开头的值构成1个数组
  例如:
People:
  - Jack:
      name: Jack Black
      age: 20
  - Bill: {id: 20, height: 180}
写法2: 用中括号来写行内对象
  People: [Jack, Bill]
2.3 纯量,就是所谓的基本数据类型
# 数值直接以数学方式写
number: 12.31
# Boolean 用 true or false
isCreated: true
# null 用 ~ 表示
fruit: ~
# 时间采用 iso8061 格式
createdTime: 2022-10-11t11:44:23.10-05:00
# 日期采用复合 iso8061 格式
date: 1992-09-03
# String 一般不用带引号
words: helloworld
# 如果 string的值带特殊字符, 则需要被单引号括住
str: 'hello: world'
3. yaml 的引用
& 锚点和 * 别名,可以用来引用:
例子
SIT: &SIT_HOST
  hostname: project.sit.hk.hsbc
  port: 2001
SIT_RO1:
  schema: RO1
  <<: *SIT_HOST
SIT_RO2:
  schema: RO2
  <<: *SIT_HOST
效果相当于:
SIT: &SIT_HOST
  hostname: project.sit.hk.hsbc
  port: 2001
SIT_RO1:
  schema: RO1
  hostname: project.sit.hk.hsbc
  port: 2001
SIT_RO2:
  schema: RO2
  hostname: project.sit.hk.hsbc
  port: 2001
- 锚点必须设置在引用之前
- 锚点处的值不能为引用值,必须为具体值
更多推荐
 
 



所有评论(0)