YAML的语法和编写规范

本文介绍了YAML(YetAnotherMarkupLanguage),一种以数据为中心的标记语言,强调其高可读性和简洁表示数据的能力。文章详细讲述了YAML的语法特点,如使用空白缩进、注解、列表、散列表等,并给出了编写规范示例。
摘要由CSDN通过智能技术生成

YAML 简介:

YAML,即 YAML Ain’t a Markup Language(YAML 不是一种标记语言)的递归缩写。YAML 其实意思是 Yet Another Markup Language(仍是一种标记语言)。它主要强度这种语言是以数据为中心,而不是以标记为中心,而像 XML 语言就使用了大量的标记。

YAML 可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,还可以简单表达数组、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件。

YAML语法

1.YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16

2.使用空白字符(不能使用Tab)分层,同层元素左侧对齐

3.单行注解由井字号( # )开始,可以出现在行中任何位置

4.每个清单成员以单行表示,并用短杠+空白(- )起始

5.每个杂凑表的成员用冒号+空白(: )分开键和值

6.杂凑表的键值可以用问号 (?)起始,表示多个词汇组成的键值

7.字串一般不使用引号,但必要的时候可以用引号框住

8.使用双引号表示字串时,可用倒斜线(\)进行特殊字符转义

9.区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(使用符号|)或新行折叠(使用符号>)两种方式

10.在单一档案中,可用连续三个连字号(---)区分多个档案

11.可选择性的连续三个点号(...)用来表示档案结尾(在流式传输时非常   有用,不需要关闭流即可知道到达结尾处)

12.重复的内容可使从参考标记星号 (*)复制到锚点标记(&)

13.指定格式可以使用两个惊叹号 ( !! ),后面接上名称

Yaml编写规范

规范一:文档使用 Unicode 编码作为字符标准编码,例如 UTF-8

规范二:使用“#”来表示注释内容

# 客户订单

date: 2015-02-01

customer:

  - name: Jai

items:

  - no: 1234         # 订单号

  - descript: cpu 

规范三:使用空格作为嵌套缩进工具。通常建议使用两个空格缩进,不建议使用 tab (甚至不支持)

规范四:序列表示

1、使用“-”(横线) + 单个空格表示单个列表项

--- # 文档开始

- 第一章 简介

- 第二章 设计目录

2、使用"[]"表示一组数据

--- # 文档开始

[blue, red, green]

3、组合表示。每个结构都可以嵌套组成复杂的表示结构

--- # 文档开始

- [blue, red, green]     # 列表项本身也是一个列表

- [Age, Bag]

- site: {osc:www.oschina.net, baidu: www.baidu.com}  # 这里是同 键值表 组合表示

规范五:键值表

1、使用 “:”(冒号) + 空格表示单个键值对

# 客户订单

date: 2015-02-01

customer:

  - name: Jai

items:

  - no: 1234         # 订单号

  - descript: cpu

  - price: ¥800.00

2、使用"{}"表示一个键值表

# 客户订单

date: 2015-02-01

customer:

  - name: Jai

items: {no: 1234, descript: cpu, price: ¥800.00}

3、"? " 问号+空格表示复杂的键。当键是一个列表或键值表时,就需要使用本符号来标记

 # 使用一个列表作为键

 ? [blue, reg, green]: Color

 # 等价于

 ? - blue

   - reg

   - gree

 : Color

4、组合表示。每个结构都可以嵌套组成复杂的表示结构

Color:

    - blue

    - red

    - green

 

 # 相当于 (也是 JSON 的表示)

 {Color: [blue, red, green]}

 div:

    - border: {color: red, width: 2px}

    - background: {color: green}

    - padding: [0, 10px, 0, 10px]

 # 使用缩进表示的键值表与列表项

 items:

    - item: cpu

      model: i3

      price: ¥800.00

    - item: HD

      model: WD

      price: ¥450.00

 # 上面使用 “-” 前导与缩进来表示多个列表项,相当于下面的JSON表示

 items: [{item:cpu, model:i3, price:¥800.00}, {item:HD, model:WD, price: ¥450.00}]

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值