什么是YAML


文档摘要

什么是 YAML 最初,YAML 意味着 Yet Another Markup Language(另一种标记语言)。然而,后来它被重新定义为 YAML Ain’t Markup Language(YAML 不是标记语言),以强调其数据导向的特性。 YAML 是一种数据序列化语言,类似于 XML 和 JSON。它用于在具有不同数据结构的应用程序和服务之间传输数据。 常见的用例包括编写配置文件、日志文件和数据共享。 为什么它很受欢迎 YAML 与敏捷方法论的原生数据结构相匹配。它的格式清晰,易于人类阅读。 以下是 YAML、XML 和 JSON 中数据表示的例子: YAML XML JSON 你可以看到 YAML 不使用任何特殊字符,并且更易于阅读。

什么是 YAML

最初,YAML 意味着 Yet Another Markup Language(另一种标记语言)。然而,后来它被重新定义为 YAML Ain’t Markup Language(YAML 不是标记语言),以强调其数据导向的特性。
YAML 是一种数据序列化语言,类似于 XML 和 JSON。它用于在具有不同数据结构的应用程序和服务之间传输数据。
常见的用例包括编写配置文件、日志文件和数据共享。

为什么它很受欢迎

YAML 与敏捷方法论的原生数据结构相匹配。它的格式清晰,易于人类阅读。
以下是 YAML、XML 和 JSON 中数据表示的例子:

YAML

Employees: - id: 4 employeename: Ryan employeetitle: Marketing Manager

XML

<Employees> <id>4</id> <employeename>Ryan</employeename> <employeetitle>Marketing Manager</employeetitle> </Employees>

JSON

{ "Employees": [ { "id": 4, "employeename": "Ryan", "employeetitle": "Marketing Manager" } ] }

你可以看到 YAML 不使用任何特殊字符,并且更易于阅读。

如何编写有效的 YAML 文件

  • YAML 是区分大小写的

  • YAML 文件扩展名是 .yaml 或 .yml

  • 数据结构通过行分隔和空白缩进定义。YAML 中不允许使用制表符。

  • 数字
    未加引号的数字被视为整数或浮点数。

整数 可以是十进制、八进制或十六进制

id: 4 octalexample: 012345 hexaexample: 0x12d4

浮点数 可以是固定的小数和指数形式。

weight: 55.5 exp: 12.3015e+05
  • 字符串

字符串数据类型通常不需要引号,但可以使用双引号或单引号。

Example – employeename: “Ryan” employeename: ‘Ryan’ employeename: Ryan

转义序列 必须包含在双引号中

employeename: “Ryan \n”

多行字符串 - 你可以用两种方式指定多行字符串:

使用管道符号 (|) 保留换行。

multilineString: | this is a multiline string this is the second line this is the third line

使用折叠符号或大于号 (>) 折叠文本,使其显示为一行

multilineString: > this is a single line string but is written in this format for clarity
  • 注释

注释以井号 (#) 开头。不支持多行注释。对于多行注释,你必须在每行开头加上 #。

  • 键值对

YAML 文件的基本构建块是键值对。
这些键值对以 key: value 的形式表示。冒号后面必须跟一个空格。

Employees: id: 4 employeename: Ryan employeetitle: Marketing Manager

这也可以通过使用花括号 {} 并用逗号分隔每个条目来内联指定。

Employees: {id: 4, employeename: Ryan, employeetitle: Marketing Manager}
  • 对象

你可以将键值对组合成对象。对象中的每个属性前面的空格必须相同。

这是一个有效的格式

Employees: id: 4 employeename: Ryan employeetitle: Marketing Manager

在下面的例子中,你可以看到属性 employeename 的缩进不正确。这是一个无效的 YAML 格式。

Employees: id: 4 employeename: Ryan employeetitle: Marketing Manager
  • 列表

列表成员通过前导破折号 (-) 指定。每个条目都在新的一行上

简单数据类型的列表

Employees: -Ryan -Jack

列表也可以写成方括号。条目之间用逗号分隔

Employees: [Ryan, Jack]

对象列表 - 你还可以在 YAML 中指定对象列表

Employees: - id: 4 employeename: Ryan employeetitle: Marketing Manager - id: 5 employeename: Jack employeetitle: Product Manager
  • 布尔值

布尔值可以有 TrueYesOn 表示真,FalseNoOff 表示假

Employees: - id: 4 employeename: Ryan employeetitle: Marketing Manager onleave: Yes - id: 5 employeename: Jack employeetitle: Product Manager onleave: No
  • YAML 支持流中的多个文档。
    三个破折号 (---) 用于指定新 YAML 文档的开始。你可以选择性地使用三个点 (…) 来标记文档的结束。
--- Employees: - id: 4 employeename: Ryan employeetitle: Marketing Manager ... --- Departments: - id: 1 departmentname: Marketing ...

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


发布者: 作者: 转发
评论区 (0)
U