YAML 字符流
在YAML中,你会遇到各种字符流,如下所示−
- 指令
- 文档边界标记
- 文档
- 完整流
在本章中,我们将详细讨论它们。
指令
指令是YAML处理器中使用的基本指示。指令是不反映在序列化树中的注释等展示细节。在YAML中,没有定义私有指令的方法。本节讨论各种类型的指令及相关示例−
保留指令
保留指令以三个连字符字符(—)初始化,如下面的示例所示。保留指令会转换为JSON的特定值。
%YAML 1.1
--- !!str
"foo"
YAML指令
YAML指令是默认指令。如果转换为JSON,提取的值包括前导和终止字符中的斜杠字符。
%YAML 1.1
---
!!str "foo"
文档边界标记
YAML使用这些标记允许一个流中包含多个文档。这些标记专门用于传达YAML文档的结构。请注意,以“—“开头的行用于开始一个新文档。
以下代码通过示例解释了这一点。
%YAML 1.1
---
!!str "foo"
%YAML 1.1
---
!!str "bar"
%YAML 1.1
---
!!str "baz"
文档
YAML文档被认为是一个单一的本地数据结构,作为单一的根节点呈现。在YAML文档中的演示细节,如指令、注释、缩进和样式都不被视为其中包含的内容。
YAML中使用两种类型的文档。在本节中将对它们进行解释。
显式文档
它以文档开始标记开头,然后是根节点的展示。下面给出了YAML显示声明的示例。
---
some: yaml
...
它包括了明确的开始和结束标记,在给定的示例中分别为“—”和“…”。将指定的YAML文件转换为JSON格式后,我们得到以下输出:
{
"some": "yaml"
}
隐式文档
这些文档不以文档开始标记开头。观察下面给定的代码:
fruits:
- Apple
- Orange
- Pineapple
- Mango
将这些值转换为JSON格式,我们得到的输出是一个简单的JSON对象,如下所示−
{
"fruits": [
"Apple",
"Orange",
"Pineapple",
"Mango"
]
}
完整流
YAML包括一个称为字符流的字节序列。流以一个前缀开始,其中包含一个表示字符编码的字节顺序。完整流以包含字符编码的前缀开头,后面跟着注释。
下面是一个完整流(字符流)的示例 –
%YAML 1.1
---
!!str "Text content\n"