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
"