Spring Boot入门教程(零): yaml使用详解

                        Spring Boot入门教程(零): yaml使用详解

转载自:https://blog.csdn.net/vbirdbest/article/details/79541807

简介

YAML 是一种简洁的非标记语言(YAML Ain’t Markup Language),YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读, 常用于作为配置文件, 比json更加简洁。

YAML 1.2 (3rd Edition): http://yaml.org/spec/1.2/spec.html

js-yaml: https://github.com/nodeca/js-yaml

YAML转化JSON: http://nodeca.github.io/js-yaml/


YAML与XML、JSON比较

YAML 与 XML:具有 XML 同样的优点,但比 XML 更加简单、敏捷等

YAML 与 JSON

JSON 可以看作是 YAML 的子集,也就是说 JSON 能够做的事情,YAML 也能够做

YAML 能表示得比 JSON 更加简单和阅读,例如“字符串不需要引号”。所以 YAML 容易可以写成 JSON 的格式,但并不建议这种做

YAML 能够描述比 JSON 更加复杂的结构,例如“关系锚点”可以表示数据引用(如重复数据的引用)


YAML的适用范围

由于实现简单,解析成本很低,YAML特别适合在脚本语言中使用。列一下现有的语言实现:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript。除了Java,其他都是脚本语言.

YAML比较适合做序列化。因为它是宿主语言数据类型直转的,由于兼容性问题,不同语言间的数据流转建议现在不要用YAML.

YAML做配置文件也不错。比如Ruby on Rails的配置就选用的YAML。对ROR而言,这很自然,也很省事.


语法

大小写敏感

使用缩进表示层级关系

禁止使用tab缩进,只能使用空格键 , 建议使用两个空格

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

字符串可以不用引号,也可以使用单引号或者双引号


数据结构

对象(键值表): 键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)冒号分隔键值对(Key: Value), Key需要顶格写,前面不能有空格,冒号后面需要有一个空格然后再跟值, 相同的缩进属于同一个map 例如age: 12

数组(列表): 一组按次序排列的值,又称为序列(sequence) / 列表(list)

纯量scalar: 数据最小的单位,不可以再分割。

对象和数组可以任意嵌套组合成负责的数据结构。

数据类型: 支持字符串、整数、浮点数、布尔、日期、null、对象、数组


示例

在一个文件中,可同时包含多个文件,并用---分隔。选择性的符号”…”可以用来表示文件结尾(在利用流的通信中,这非常有用,可以在不关闭流的情况下,发送结束信号)


yaml文件一


yaml文件二


yaml文件三


yaml文件四

Java解析


java解析一


java解析二


java解析三

推荐阅读更多精彩内容