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