1、yaml简述 YAML是⼀个类似 XML、JSON 的标记性语⾔。YAML 强调以数据为中⼼,并不是以标识语⾔为重点。因⽽YAML 本⾝的定义⽐较简单,号称“⼀种⼈性化的数据格式语⾔”。 2、适⽤场景 2.1 脚本语⾔ 由于实现简单,解析成本很低,YAML特别适合在中使⽤。列⼀下现有的语⾔实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,Go 。除了Java 和 Go,其他都 是脚本语⾔。 2.2序列化 YAML⽐较适合做序列化。因为它是数据类型直转的。 2.3 配置⽂件 YAML做配置⽂件也不错。写YAML要⽐写XML快得多(⽆需关注标签或引号),并且⽐ini⽂档功能更强。 **YAML 文件格式规范** YAML (YAML Ain't Markup Language) 是一种数据序列化语言,它强调以数据为中心,而不是像XML那样注重标记语言的形式。YAML 的设计目标是简洁且易于人类阅读,因此被誉为“人性化数据格式语言”。它的语法简洁明了,通常用于脚本语言的配置文件和数据序列化。 ### 1. YAML 的应用场景 **1.1 脚本语言** 由于 YAML 的实现简单,解析效率高,它在多种脚本语言中得到广泛应用,如 Ruby、Java、Perl、Python、PHP、OCaml、JavaScript 和 Go。其中,除了 Java 和 Go,其他都是脚本语言,这得益于 YAML 的轻量级特性。 **1.2 序列化** YAML 是一个优秀的序列化选择,因为它能直接映射到各种数据类型。在序列化和反序列化过程中,数据转换自然流畅。 **1.3 配置文件** YAML 作为配置文件格式非常受欢迎,因为它比 XML 更加简洁,编写速度快,无需关注标签和引号,并且功能更强大,比传统的 ini 文件更适合复杂场景。 ### 2. YAML 数据结构 YAML 数据结构主要包括以下三种: **2.1 标量(Scalars)** 标量是最基本的数据单元,如数字、字符串等。如果字符串包含空格或特殊字符,通常需要使用引号包裹。 **2.2 序列(Sequences)** 序列类似于数组,是一组有序的值。序列可以使用 `-` 符号后跟空格表示列表项。 **2.3 键值表(Mappings)** 键值表是键值对的集合,类似于字典。键值对用 `:` 分隔,键值表通常用 `{}` 包裹。 ### 3. YAML 语法约定 **3.1 大小写敏感** YAML 是大小写敏感的,所以在编写时要注意区分。 **3.2 注释** 以 `#` 开头的行被视为注释,不会被解析。 **3.3 Unicode 编码** YAML 使用 Unicode 编码作为字符标准。 **3.4 字符串默认无需引号** 除非包含特殊字符,否则字符串通常不需要引号。 **3.5 层级关系** 通过缩进来表示数据结构的层次,不允许使用 tab 键,推荐使用空格进行缩进。相同层级的元素应保持左对齐,缩进的空格数量不重要。 ### 4. 格式规范 **4.1 标量数据类型** 包括整数、八进制、十六进制、浮点数、无穷大、无效数字、空值、布尔值、字符串、日期和日期时间等。 **4.2 数组** 使用 `-` + 空格表示列表项,`[]` 表示数组。 **4.3 键值表** 键值对使用 `:` + 空格表示,`{}` 表示键值表。 **4.4 文本块** 可以通过双引号、单引号或使用 `|` 和 `>` 来表示不同类型的文本块,分别对应保持原始换行、保留换行和合并换行。 **4.5 类型显式指示** 使用 `!` 符号进行类型指定,单个感叹号通常是自定义类型,双感叹号表示内置类型。 ### 5. YAML 组织结构 YAML 文件可以包含一个或多个文档,每个文档之间用 `---` 分隔,文档结束可以使用 `...`(可选)。 通过以上介绍,我们可以看到 YAML 文件格式规范清晰,易于理解,这使得它在数据交换、配置管理以及脚本编程中有着广泛的应用。其简洁的语法使得开发人员能够更快地编写和理解配置,从而提高了工作效率。
- 粉丝: 799
- 资源: 232
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助