在YAML中,您會遇到各種字符流,如下所示;
- Directives
- Document Boundary Markers
- Documents
- Complete Stream
在這一章中,我們將詳細討論它們。
Directives
指令是YAML處理器中使用的基本指令。指令是表示詳細信息,如注釋,它們不會反映在序列化樹中。在YAML中,無法定義私有指令。本節討論各種類型的指令以及相關的示例−
Reserved Directives
保留指令用三個連字符(--)初始化,如下例所示。保留的指令被轉換爲JSON的特定值。
%YAML 1.1 --- !!str "foo"
YAML Directive
YAML指令是默認指令。如果轉換爲JSON格式,則獲取的值包括前向和終止字符中的正斜槓字符。
%YAML 1.1 --- !!str "foo"
Document Boundary Markers
YAML使用這些標記允許在一個流中包含多個文檔。這些標記是專門用來表達YAML文檔結構的。請注意,以「---」開頭的行用於啓動新文檔。
下面的代碼用示例說明了這一點;
%YAML 1.1 --- !!str "foo" %YAML 1.1 --- !!str "bar" %YAML 1.1 --- !!str "baz"
Documents
YAML文檔被視爲一個單獨的原生數據結構,以單個根節點的形式呈現。YAML文檔中的表示細節(如指令、注釋、縮進和樣式)不視爲包含在其中的內容。
YAML中使用了兩種類型的文檔。本節將對它們進行解釋;
Explicit Documents
它從文檔開始標記開始,然後是根節點的表示。下面給出了YAML顯式聲明的示例−
--- some: yaml ...
它包括一個顯式的開始和結束標記,在給定的示例中是「---」和「…」。在將指定的YAML轉換爲JSON格式時,我們得到如下所示的輸出;
{ "some": "yaml" }
Implicit Documents
這些文檔不是以文檔開始標記開頭的。遵守下面給出的代碼&負;
fruits: - Apple - Orange - Pineapple - Mango
將這些值轉換爲JSON格式,我們將輸出作爲一個簡單的JSON對象,如下所示−
{ "fruits": [ "Apple", "Orange", "Pineapple", "Mango" ] }
Complete Stream
YAML包含一個稱爲字符流的字節序列。流以包含表示字符編碼的字節順序的前綴開頭。完整的流以包含字符編碼的前綴開頭,後跟注釋。
完整流(字符流)的示例如下所示−