YAML 数据类型详解:列表(List)、映射(Map)/字典(Object)及基本数据类型的表示方式

更新时间:2024-04-24 16:47:00   人气:10263
在 YAML(Yet Another Markup Language)中,作为一款人类可读的数据序列化语言,其对各种数据结构的表达有着直观且灵活的支持。以下将详细介绍YAML中的三种主要数据类型——列表(Lists)、映射(或称为Map/Dictionary/Object),以及基础数据类型的表示方法。

### 列表(List)

**列表** 在YAML里用于存储有序集合的数据项。它的每一元素由破折号 `-` 引导,并通过换行进行分隔:

yaml

# 一个简单的整数和字符串组成的列表示例:
my_list:
- item1
- item2
- 3
- "apple"

上述代码定义了一个名为 `my_list` 的列表,其中包含了四个不同的项目:两个文本字符串 `"item1"` 和 `"item2"`, 整数值 `3` ,以及另一个被双引号包裹以明确为字符串值的 `"apple"` 。注意,在YAML中,数字无需加引号也能正确识别为数字类型而非字符串。

### 映射(Map)/字典(Object)

**映射**(Maps), 或者可以称之为 **对象**(Objects)或者 **字典**(Dictionaries),是键(key)-值(value)配对的形式存在的一种无序集合。它们使用冒号 `:` 来划分每个条目的 key 和 value,并可以通过缩进来实现层级嵌套关系:

yaml

person:
name: John Doe
age: 45
hobbies:
- reading
- hiking
- coding

address_book:
home:
city: New York
zip_code: '10001'
work:
company_name: ACME Corp.
location: San Francisco


在这个例子中,我们有两个映射(`person` 和 `address_book`)。对于 `person` 而言,“name”、“age” 是顶层属性,而 “hobbies” 属性则是一个内含三个项目的子列表。同样地,《address_book》也是一个映射,包含“home”与“work”的详细地址信息,这些都进一步展开成各自独立的地图集层次结构。

### 基本数据类型

YAML支持多种基本数据类型,包括但不限于:

#### 字符串(String)
可以直接书写,也可以用单引号 `' '` 或 双引号 `""` 包裹特殊字符或需要保留原格式的内容。
如:"Hello, World!" 或 'It\'s me!'

#### 数字(Number)
直接写出即可自动判断并解析为对应的整型(integers)或浮点型(float numbers).
例如:
yaml

int_value: 42
float_value: 3.14


####布尔(Boolean)
True 使用 `true/false` 表达 (不区分大小写),也可简写为 `yes/no/on/off`.
yaml

is_active: true
has_paid: no
feature_enabled: on


#### null / 空(null values)
空值通常写作 `null` ,但在YAML中更常见的是使用 `~`(波浪线符号)代表空或不存在的对象引用.

以上就是关于YAML语法中核心数据类型的详尽解读,无论是简单的基本数据还是复杂多层的关系组合,都能利用这种简洁明了的语言风格轻松表述出来。这使得它成为配置文件编写以及其他场景下理想的数据交换格式选择之一。