文章摘要: YAML(YAML Ain’t Markup Language)是一种直观的数据序列化格式,常用于配置文件、数据交换等场景。
介绍
简要说明
- YAML(YAML Ain’t Markup Language)是一种直观的数据序列化格式,用于配置文件、数据交换等。
主要功能
- 容易阅读。
- 容易与脚本语言交互。
- 以数据为核心,注重数据,轻格式。
注意事项
- 使用缩进来表示数据层次结构,而不是括号或引号。
.yml(推荐)、.yaml
适用场景
- 需要清晰、简洁配置的场合。
- 云计算配置文件,如Docker、Kubernetes。
- 大数据和复杂配置管理。
表达式
${}:引用变量,得到数据- 引用yaml文件中的其他变量到自身变量中。
注释
# 这是一个YAML文件的示例
name: "Alice" # 用户的姓名
age: 30 # 用户的年龄
# 下面的数组列出了用户喜欢的编程语言
languages:
- Python
- JavaScript
- Ruby
数据类型
基本数据类型
# 字符串
simple_string: Hello, YAML!
quoted_string: "This is a quoted string."
single_quoted_string: 'This is a single-quoted string.'
# 空字符串
empty_string: ''
# 整数
integer: 42
# 浮点数
float: 3.14159
# 布尔值
boolean_true: true
boolean_false: false
# 空值
null_value: null
#
empty_value: ~
键值对
- 键值对数据,对象数据
name: Alice
age: 30
is_student: false
数组
fruits:
- Apple
- Banana
- Cherry
fruits: [Apple, Banana, Cherry]
嵌套对象
user-data: {name: Bob, age: 25, address: {street: 123 Main St, city: Anytown, zip: 12345}}
user-data:
name: Bob
age: 25
address:
street: 123 Main St
city: Anytown
zip: 12345
数组和对象的组合
users:
- name: Alice
age: 30
- name: Bob
age: 25
日期时间
date: 2024/12/12
占位符
- 实现调用配置文件中的其他键的值。
- 格式:
${<其他键>}
注释
- 仅支持对其他属性的引用。
- 不支持SpEL表达式。
name: "云脉"
agent_data:
account: "CHN2024091700009999"
nick_name: "测试姬"
real_name: ${name}
nationality: "CHN"
gender: 0
age: 23
占位符-随机数
# 随机任意随机数
secret: "${random.value}"
# 随机整数
number: "${random.int}"
# 随机长整数
bignumber: "${random.long}"
# 随即UUID
uuid: "${random.uuid}"
# 指定随机值的长度
number-less-than-ten: "${random.int(2)}"
# 指定整数随机数范围
number-in-range: "${random.int[1, 100]}"
使用锚点和引用
- 使用了锚点(
&defaults)和引用(*defaults)来避免重复代码。 development和test环境共享defaults中的配置。
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development
<<: *defaults
test:
database: myapp_test
<<: *defaults