YAML字符流

在YAML中,將瞭解如下各種字符流 -

  • 指令
  • 文件邊界標記
  • 文件
  • 完整流

在本章中,將詳細介紹和學習它們。

1. 指令

指令是YAML處理器中使用的基本指令。 指令是表示詳細信息,如註釋,不會反映在序列化樹中。 在YAML中,無法定義私有指令。 本節討論各種類型的指令及相關示例 -

保留指令
保留指令初始化爲三個連字符(---),如下例所示。 保留的指令將轉換爲JSON的特定值。

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

2. YAML指令

YAML指令是默認指令。 如果以JSON格式轉換,則fetched值包含前綴和終止字符中的正斜槓字符。

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

3. 文件邊界標記

YAML使用這些標記允許在一個流中包含多個文檔。 這些標記專門用於傳達YAML文檔的結構。 請注意,以---開頭的行用於啓動新文檔。

以下代碼通過示例解釋了這一點 -

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

4. 文件

YAML文檔被視爲單個本機數據結構,表示爲單個根節點。 YAML文檔中的演示詳細信息(如指令,註釋,縮進和樣式)不被視爲其中包含的內容。

YAML中使用了兩種類型的文檔。 它們在本節中解釋 -

明確的文件
它從文檔開始標記開始,然後是根節點的表示。 YAML顯式聲明的示例如下 -

---

some: yaml

...

它包括一個明確的開始和結束標記,在給定的例子中是---......。 在轉換JSON格式的指定YAML時,得到如下所示的輸出 -

{
   "some": "yaml"
}

隱含文件
這些文檔不以文檔開頭標記開頭。 觀察下面給出的代碼 -

fruits:
   - Apple
   - Orange
   - Pineapple
   - Mango

以JSON格式轉換這些值,將輸出作爲一個簡單的JSON對象,如下所示 -

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

5. 完整流

YAML包括一個稱爲字符流的字節序列。 該流以包含表示字符編碼的字節順序的前綴開始。 完整流以包含字符編碼的前綴開頭,後跟註釋。

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

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