缘由

最近学习新知识需要使用YAML,那就来学习一下吧。

介绍

YAML这种语言常被使用以数据做为中心,标记语言并非重点 。

语法

数据类型

YAML 支持以下几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

对象数组解析例子

YAML支持对象数组,接下来直接举个例子:

  1. 图书:
  2. # 注释
  3. IT技术:
  4. 前端:
  5. JavaScript :
  6. - 红宝书
  7. - 犀牛书
  8. - 你不知道的JavaScript
  9. HTML :
  10. - what wg
  11. CSS :
  12. - w3.org
  13. 后端:
  14. ? Java
  15. ? Spring
  16. ? MySql
  17. # 注释
  18. 文学: { 西游记, 水浒传, 三国演义 }

转换为JSON为:

  1. {
  2. "图书": {
  3. "IT技术": {
  4. "前端": {
  5. "JavaScript": ["红宝书","犀牛书","你不知道的JavaScript"],
  6. "HTML": ["what wg"],
  7. "CSS": ["w3.org"]
  8. },
  9. "后端": {
  10. "Java": null,
  11. "Spring": null,
  12. "MySql": null
  13. }
  14. }
  15. },
  16. "文学": {
  17. "西游记": null,
  18. "水浒传": null,
  19. "三国演义": null
  20. }
  21. }

其中有的情况不能用JSON表示,因为YAML的key可以是对象或者数组的复合结构

  1. ?
  2. - 朋友
  3. - 同事
  4. :
  5. - 小明
  6. - 小张
  7. - 小李

key是[“朋友”,”同事”] value是[“小明”,”小张”,”小李”]

  1. ?
  2. 关系:
  3. - 朋友
  4. - 同事
  5. :
  6. - 小明
  7. - 小张
  8. - 小李

key是{“关系”: [“朋友”,”同事”]} value是[“小明”,”小张”,”小李”]

资料

解析地址:https://astexplorer.net/
参考地址:https://www.runoob.com/w3cnote/yaml-intro.html

注意

这里举的例子不能覆盖所有,遇到yml文件后最好去https://astexplorer.net/解析看一下AST就知道是什么意思了。