YAML字符流


YAML字符流

在YAML中,您会遇到如下各种字符流

  • 指令
  • 文件边界标记
  • 文件
  • 完整流

在本章中,我们将详细讨论它们。

指令

指令是YAML处理器中使用的基本指令。指令是表示详细信息,如注释,不会反映在序列化树中。在YAML中,无法定义私有指令。本节讨论各种类型的指令及相关示例 -

保留指令

保留指令初始化为三个连字符(---),如下例所示。保留的指令将转换为JSON的特定值。

%YAML 1.1
--- !!str
"foo"

YAML指令

YAML指令是默认指令。如果以JSON格式转换,则fetched值包含前缀和终止字符中的正斜杠字符。

%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

...

它包括一个明确的开始和结束标记,在给定的例子中是“---”和“......”。在转换JSON格式的指定YAML时,我们得到如下所示的输出 -

{
   "some": "yaml"
}

隐含文件

这些文档不以文档开头标记开头。观察下面给出的代码

fruits:
   - Apple
   - Orange
   - Pineapple
   - Mango

以JSON格式转换这些值,我们将输出作为一个简单的JSON对象获得,如下所示

{
   "fruits": [
      "Apple",
      "Orange",
      "Pineapple",
      "Mango"
   ]
}

完整流

YAML包括一个称为字符流的字节序列。该流以包含表示字符编码的字节顺序的前缀开始。完整流以包含字符编码的前缀开头,后跟注释。

完整流(字符流)的示例如下所示

%YAML 1.1
---
!!str "Text content\n"