codecamp

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"



YAML 语法原语
YAML 节点属性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }