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"