YAML - 集合和结构

YAML 包括使用缩进表示范围的块集合。在这里,每个条目都以新行开头。集合中的块序列用破折号和空格 (-) 表示每个条目。在 YAML 中,块集合样式不由任何特定指示符表示。YAML 中的块集合可以通过其中包含的键值对标识与其他标量区分开来。

映射是 JSON 结构中包含的键值的表示。它经常用于多语言支持系统和移动应用程序中 API 的创建。映射使用冒号和空格 (:) 的键值对表示。

示例

考虑标量序列的一个例子,例如如下所示的球员列表 −

- Mark Joseph
- James Stephen
- Ken Griffey

以下示例显示将标量映射到标量 −

hr: 87
avg: 0.298
rbi: 149

以下示例显示将标量映射到序列 −

European:
- Boston Red Sox
- Detroit Tigers
- New York Yankees

national:
- New York Mets
- Chicago Cubs
- Atlanta Braves

集合可用于序列映射,如下所示 −

-
name: Mark Joseph
hr: 87
avg: 0.278
-
name: James Stephen
hr: 63
avg: 0.288

对于集合,YAML 包含使用显式指示符而不是使用缩进来表示空格的流样式。集合中的流顺序写为用方括号括起来的逗号分隔列表。集合的最佳示例包含在 PHP 框架(如 symphony)中。

[PHP、Perl、Python]

这些集合存储在文档中。YAML 中的文档分隔用三个连字符或破折号 (---) 表示。文档结尾用三个点 (…) 表示。

YAML 中的文档分隔用三个破折号 (---) 表示。文档结尾用三个点 (…) 表示。

文档表示称为结构格式,如下所述−

# Ranking of 1998 home runs
---
- Mark Joseph
- James Stephen
- Ken Griffey 

# Team ranking
---
- Chicago Cubs
- St Louis Cardinals

问号与空格的组合表示结构上的复杂映射。在块集合中,用户可以使用破折号、冒号和问号来包含结构。以下示例显示了序列之间的映射 −

- 2001-07-23
? [ New York Yankees,Atlanta Braves ]
: [ 2001-07-02, 2001-08-12, 2001-08-14]