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"
广告