yaml

YAML 基础语法

  • 大小写敏感,

  • 字串不一定要用双引号标识,如果有空格或特殊字符,需要放在引号之中

  • 使用缩进表示层级关系

  • 缩进不允许使用Tab键,只允许使用空格

  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

  • 在一个文件中,可同时包含多个文档,并用“---”分隔(三个横线),用“...”可以用来表示档案结尾, 对于网络传输或者流来说,作为明确结束的符号,有利于软件处理。(例如不需要知道流关闭就能知道文档结束)

YAML 数据结构

YAML 支持的数据结构有三种

  • 对象:键值对的集合, 键值对用冒号 ":" 来分隔 ,冒号后面需有一个空格

  • 数组:数组对象通过减号 "-" 来表示 ,减号后需有一个空格

  • 纯量(scalars):单个的、不可再分的值,如字符串、数字、时间、日期、null(用~表示)

注意点

  • 重复定义时,后定义的会覆盖前面定义的值

  • 如果值为 int, float, bool等类型,解析后会转换为对应的类型

  • 强制类型转换使用 两个!,如 !!str 12

house: 
  family:
    name: doe
    parents: 
      - john
      - jane
    children:
      - pual
      - mark
      - simone
    address:
      number: 34
      street: main street
      city: nowhere
      zipcode: 12345

num: 12.155
flag: true
who: ~
s1: !!str 123
s2: !!str true

key:value放置于{}中进行表示,例如:

address:
  {number: 34, street: main street, city: nowhere, zipcode: 12345}

引用

锚点&和别名*,可以用来引用。

  • &用来建立锚点,类似于声明变量

  • *用来引用锚点,类似于引用变量

  • <<表示合并到当前数据(如果变量名重复也会覆盖)

defaults: &defaults
  adapter:  postgres
  host:     localhost

#development:
#  database: myapp_development
#  adapter:  postgres
#  host:     localhost
development:
  database: myapp_development
  <<: *defaults

test:
  database: myapp_test
  <<: *defaults
原文地址:https://www.cnblogs.com/yjh1995/p/13997037.html