Spring boot源码分析-yaml语言(9)

Spring boot源码分析-yaml语言(9)

YAML(/ˈjæməl/,和camel同发音 )是人类可读的 数据序列化语言。它通常用于配置文件

语法

  • 单个流中的多个文档由三个连字符(—)分隔,三个句点(…)可以选择在一个流中结束一个文档。
  • 空格(不能使用Tab符号) 缩进用于表示结构; 但是,标签字符绝不允许作为缩进。
  • 注释以(#)开始,可以在一行上的任何地方开始,并持续到行尾。注释必须与其他标记与空格字符分开。如果#它们出现在字符串的内部,就表示#文字
  • 列表成员用(-)表示,每行一个部件,或者包含在方括号([ ]),并通过分开的逗号 空间(,)。
  • 关联数组(:)的形式键:值,每行一个或封闭在大括号({ }),并通过分开的逗号 空间(,)。
  • 字符串(标量)通常不引用,但可以用双引号(”)或单引号(’)括起来。
    在双引号中,特殊字符可以用反斜杠()开头的C风格的转义序列表示。根据文档,唯一支持的八进制转义是。
  • 多行字符串可以使用|保留换行符,也可以使用>折叠换行。
  • 重复节点由初始表示符号(&),然后与一个参考星号(*)。
  • 节点可以使用感叹号(!!)后跟一个字符串来标注类型或标签,该字符串可以扩展为一个URI。
  • 流中的YAML文档之前可能包含由百分号(%)和后跟名称和空格分隔的参数组成的“指令” 。

转换的网站

JS-YAML

示例

yaml表示 json表示 备注信息
使用内嵌块的表示方式
{ name: ‘pets’ }

* 对象

name: pets
{ name: 'pets' }
  • 对象内联表示
people: {name:jamet,age:33}
{ people: { 'name:jamet': null, 'age:33': null } }
  • 数组
水果: 
 - 苹果  - 西瓜  - 桃子
{ '水果': [ '苹果', '西瓜', '桃子' ] }
  • 数组内联表示
水果: [ 苹果, 西瓜, 桃子, 果汁]
{ '水果': [ '苹果, 西瓜, 桃子, 果汁' ] }
  • 多行字符串表示(一)
数据: |
   曾经有一份真挚的爱情
   摆在我的面前
   ,门口说:
   “请不要乱来”
   所以就不来了
{ '数据': '曾经有一份真挚的爱情\n摆在我的面前\n,门口说:\n“请不要乱来”\n所以就不来了\n' }
  • 多行字符串表示(二)
数据: >
   曾经有一份真挚的爱情
   摆在我的面前
   ,门口说:
   “请不要乱来”
   所以就不来了
{ '数据': '曾经有一份真挚的爱情 摆在我的面前 ,门口说: “请不要乱来” 所以就不来了\n' }
  • 使用锚点
server: &server
  host: 127.0.0.1
  port: 1521

dev: database: dev_app <<: *server prod: database: prod_app <<: *server 
{ server: { host: '127.0.0.1', port: 1521 },
  dev: { database: 'dev_app', host: '127.0.0.1', port: 1521 },
  prod: { database: 'prod_app', host: '127.0.0.1', port: 1521 } }
  • 类型转换
a: 123
b: "123"
c: !!str 123
d: !!str true
e: 

你可能感兴趣的:(spring-boot)