简介

  • YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时, YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)
  • 它非常适合用来做以数据为中心的配置文件
  • YAML 的配置文件后缀为 .yml,如: runoob.yml

基本的语法结构

  • key: value; key: 与value之间有空格
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab, 只允许空格
  • 缩进的空格数不重要, 只要相同层级的元素左对齐即可
  • ‘#’表示注释
  • 字符串无需加引号, 如果要加, “”与 ‘’表示字符串内容会被转义或不转义
    • 其中单引号 '' 字符串内容不会被转义,举个例子'\n'会输出\n这个字符串
    • 双引号 " " 字符串内容会被转义,举个例子"\n "会把\n进行转义输出换行回车
  1. 当数据类型是字面量

    • 字面量:单个的、不可再分的值date、boolean、string、number、null
    • 语法为:(k:与v之间必须加空格)
      1
      k: v
  2. 当数据类型是对象、键值对的集合

    • 对象、键值对的集合:map、hash、set、object
      1
      2
      3
      4
      5
      6
      7
      #行内写法:(行内写法时`k:`与`v`之间可以不加空格)  
      k: {k1:v1,k2:v2,k3:v3}
      #或一般写法:(一般写法时`k:`与`v`之间必须加空格)
      k:
      k1: v1
      k2: v2
      k3: v3
  3. 当数据类型是数组、一组按次序排列的值

    • 数组、一组按次序排列的值:array、list、queue
    • 语法为:(k:与v之间,-与v之间都必须加空格)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      #`k:`与`v`之间,`-`与`v`之间都必须加空格
      行内写法: k: [v1,v2,v3]
      companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]
      #或者
      k:
      - v1
      - v2
      - v3
      companies:
      -
      id: 1
      name: company1
      price: 200W
      -
      id: 2
      name: company2
      price: 500W