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、对象、数组
示例
在一个文件中,可同时包含多个文件,并用---分隔。选择性的符号”…”可以用来表示文件结尾(在利用流的通信中,这非常有用,可以在不关闭流的情况下,发送结束信号)
Java解析