YAML 格式介绍

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式。它通常用于配置文件、数据存储和数据交换等场景。以下是对 YAML 格式的详细介绍:

YAML 注释

YAML 支持注释,注释以井号(#)开头。例如:

# This is a comment
key: value

YAML 基本语法

缩进表示层级关系

YAML 使用缩进表示层级关系,缩进通常使用空格,不建议使用制表符。每个缩进级别通常为两个空格。例如:

parent:
  child: value

在上面的例子中,“child” 是 “parent” 的子项,通过缩进两个空格来表示层级关系。

键值对表示数据

YAML 使用键值对来表示数据。键和值之间用冒号分隔,冒号后面跟一个空格,然后是值。例如:

key: value

在上面的例子中,“key”是键,“value”是值。

数组表示列表数据

YAML 使用破折号和空格来表示数组(列表)数据。例如:

fruits:
- apple
- banana
- orange

fruits:
  - apple
  - banana
  - orange

在上面的例子中,定了包含三个元素的 fruits 数组。

多行字符串表示

YAML 可以使用管道符(|)或大于号(>)来表示多行字符串。管道符会保留字符串中的换行和缩进,大于号会将字符串折叠成一行,去除多余的空白字符。例如:

description: |
  This is a
  multiline
  description.

或者

description: >
  This is a single line description.

YAML 数据类型

字符串

普通字符串:直接用引号括起来或不使用引号。例如:“string value” 或 string_value。

多行字符串:如前面介绍的使用管道符或大于号表示。

数字

整数:例如:123。

浮点数:例如:3.14。

布尔值

真:true、True、on、Yes、y。

假:false、False、off、No、n。

空值

可以用 null、~ 或不写任何值来表示空值。

对象

使用键值对和缩进表示对象。例如:

person:
  name: John
  age: 30

数组

用连字符(-)表示列表项:

fruits:
- apple
- banana
- orange

在这个例子中,fruits 是一个包含三个字符串元素的数组。

也可以写成缩进的形式:

fruits:
  - apple
  - banana
  - orange

YAML 数组可以包含不同类型的元素,例如:

mixed:
- 1
- "two"
- 3.0
- true

这里的 mixed 数组包含了整数、字符串、浮点数和布尔值。

也可以在 YAML 中创建嵌套的数组,例如:

matrix:
- [1, 2, 3]
- [4, 5, 6]
- [7, 8, 9]

这个例子中,matrix 是一个包含三个子数组的数组。

YAML 优点

  • 易读性:YAML 的语法简洁明了,易于阅读和理解。它使用缩进和简洁的语法表示数据结构,使得配置文件和数据文件更加直观。

  • 跨语言支持:YAML 可以被多种编程语言解析和生成,因此它非常适合用于数据交换和配置文件。许多编程语言都有 YAML 解析库,可以方便地读取和写入 YAML 格式的数据。

  • 灵活性:YAML 支持多种数据类型,包括对象、数组、字符串、数字、布尔值等。它还支持嵌套结构和引用,可以表示复杂的数据结构。

  • 可扩展性:YAML 可以通过自定义标签和扩展来满足特定的需求。这使得 YAML 可以适应不同的应用场景和数据格式。

总之,YAML 是一种简洁、易读、跨语言支持的数据序列化格式,广泛应用于配置文件、数据存储和数据交换等领域。

一个有效的 YAML 文件,可以参考:https://yaml.org/

YAML 详细语法,可以参考:https://yaml.org/spec/1.2.2/

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号