📜  YAML-字符流

📅  最后修改于: 2020-10-14 08:40:25             🧑  作者: Mango


在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"