YAML Ain’t a Markup Language, Yet Another Markup Language.

情景

最近在使用 github+hexo 配置属于自己的博客时遇到了以 yml 为后缀的配置文件,因为不太了解,所以顺便学习一下。

YAML 是什么?

YAML 是一种可读性高,以数据为中心的数据序列化格式。可以表达 对象(键值对)数组标量 这几种数据形式 能够被多种编程语言和脚本语言解析。

什么是序列化

序列化指的是将自定义的对象或者其他数据进行持久化,从而方便进行传输和存储。一般情况下,能够序列化的数据一定能够通过反序列化恢复。

YAML 语法与格式

基本语法

  • k: v 的形式来表示键值对的关系,冒号后面必须有一个空格
  • # 表示注释
  • 对大小写敏感
  • 通过缩进来表示层级关系,缩排中空格的数目不重要,只要相同阶层的元素左侧对齐就可以了
  • 缩进只能使用空格,不能使用 tab 缩进键
  • 字符串可以不用双引号

格式

对象和键值对

通过 k: v 的方式表示对象或者键值对,冒号后必须要加一个空格:

Name: Astron
Sex: female
School: TJU

通过缩进来表示对象的多个属性:

People: Name: AstronSex: femaleSchool: TJU

也可以写成

people: {name: Astron, sex: female}

数组

数组(或者列表)中的元素采用 - 表示,以 - 开头的行表示构成一个数组

eg1:

- A
- B
- C

eg2:

people: - yyy- zzz- www

行内表示:

people: [yyy, zzz, www]

eg3: 对象数组

people: - name: yyyage: 18- name: zzzage: 19

使用流式表示:

people: [{name: yyy, age: 18},{name: zzz, age: 19}]

标量

标量是最基本的不可再分的值,包括:

  • 整数
  • 浮点数
  • 字符串
  • 布尔值
  • Null
  • 时间
  • 日期

eg:

boolean:- true # 大小写都可以- falsefloat:- 3.14- 3.25e+5 # 科学计数法int: 12null: nodeName: namestring: 123date: 2020-01-01 # 格式为 yyyy-MM-dddatetime: 2020-01-10T15:02:08+08:00 # 日期和时间使用T连接,+表示时区

引用

& 用于建立锚点,* 用于引用锚点,<< 表示合并到当前数据

eg1:

defaults: &defaultsadapter: ppphost: qqqdevelopment: database: mq<<: *defaults

相当于:

defaults:adapter: ppphost: qqqdevelopment: database: mqadapter: ppphost: qqq

eg2:

- &showell steve
- clark
- eve
- *showell

相当于:

- steve
- clark
- eve
- steve

使用场景

脚本语言

YAML 实现简单,解析成本低,所以特别适合在脚本语言中使用

序列化

配置文件

写 YAML 比 XML 方便,所以 YAML 也可以用来做配置文件,但是,不同语言间的数据流转不建议使用YAML。

参考

百度百科
菜鸟教程

YAML简介(.yml文件后缀)相关推荐

  1. Spring Boot application.yml文件语法

    Yaml文件: 定义: Yaml文件是用Yaml语言写的文件,Yaml语言是一种可读性高,更注重数据表达,可扩展的一种数据标记语言.Yaml文件以.yaml或者.yml为后缀,例如applicatio ...

  2. ModelFileType:XML、Hdf5、dat等不同模型文件后缀文件的简介、使用方法之详细攻略

    ModelFileType:XML.Hdf5.dat等不同模型文件后缀文件的简介.使用方法之详细攻略 目录 一.XML文件 XML简介 XML使用方法 二.HDF5文件 HDF5简介 HDF5常见文件

  3. Linux新建yaml文件,Spring Boot 装载自定义yml文件

    yml格式的配置文件感觉很人性化,所以想把项目中的.properties都替换成.yml文件,蛋疼的是springboot自1.5以后就把@configurationProperties中的locat ...

  4. 如何读取yaml(yml)文件

    public class Config {//resource文件夹下的yml文件名private static final Config CONFIG = new Config("/cod ...

  5. 持续集成与持续部署(五)01-TravisCI——使用简介-Travis CI 只支持 Github,提供的是持续集成服务 配置项目的.travis.yml文件

    持续集成与持续部署(五)01-TravisCI--使用简介-Travis CI 只支持 Github,提供的是持续集成服务 & 配置项目的.travis.yml文件 TravisCI 使用简介 ...

  6. SpringBoot中yml文件报错:org.yaml.snakeyaml.scanner.ScannerException:mapping values are not allowe here...

    场景 SpringBoot中配置静态资源访问路径时提示: 报错代码如下: 实现 首先确保yml文件的格式要正确,每个冒号的后面要紧跟空格. 根据提示报错信息在static-path-pattern这个 ...

  7. Day6——yaml简介

    一. 简介 SpringBoot使用一个全局配置文件: application.properties application.yml 配置文件放在src/main/resources或者类路径/con ...

  8. springboot yml文件不是绿叶子问题

    项目的yml文件一直不显示绿色小叶子,显示文本类型或者下图类型,项目启动运行不会影响,但是看着不爽,必需整它,终于,今天解决了. 先看一下我之前的yml格式 还有这样的,看起来不舒服. 解决方案 ct ...

  9. Go语言读取解析yml文件,快速转换yml到go struct

    YAML (YAML Ain't a Markup Language)是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被计算机程序识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交 ...

最新文章

  1. LabelButtonScale
  2. 如何在您的笔记本上搭建View 演示环境 -5.配置View Connection Server
  3. 可以获取python中输出函数帮助的是_Python帮助函数调试函数 用于获取对象的属性及属性值...
  4. python ln2怎么写_Python2和3切换默认
  5. delphi中的dbgrid使用
  6. shopee本土店怎么做,一些运营技巧分享
  7. java ehcahce刷新_springboot结合ehcache防止恶意刷新请求的实现
  8. 方维订餐系统二次开发,将商户的所有图片调到商铺详情里面
  9. 干货!286页李宏毅《深度学习讲义》
  10. Web前端工作笔记004---js--webSocket简单介绍和使用方法
  11. C#基础17:匿名方法与Lambda表达式
  12. java-redis初探
  13. ConcurrentHashMap!你居然不知道1.7和1.8可不一样?!
  14. JAVA商城系统开发 VS PHP商城系统开发
  15. 雅虎邮箱为什么停止服务_雅虎的发展项目将变成什么样?
  16. 最近插入法和最近邻点法
  17. 最大流_FF思想_EK算法
  18. 客户满意度测评模型-层次分析法模型」
  19. 洛谷 P3799 妖梦拼木棒
  20. tb获取商品详情信息API接口开发文档

热门文章

  1. Android在中国的发展及就业前景解析
  2. 多懂点SQL可以写出更好的接口
  3. 用Python学《微积分B》(多元函数Taylor公式)
  4. 计算机桌面英文翻译,电脑显示器英语怎么说
  5. 聚苯乙烯微球(PS)高分子微球材料
  6. 又是一年金九银十!docker搭建ssr
  7. SWUSTOJ #954 单链表的链接
  8. 团队协作一、onlyoffice协同开发使用
  9. 网络安全工程师年薪百万?到底是干什么的?
  10. ASP.NET教师排课系统