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. graphpad做折线图坐标轴数字_多组数据制作折线图,四步让你的图表实用又美观,老板看了都说好...
  2. PHP中怎样实现正负数的相加,PHP 求任意n个正负整数里面最大的连续和
  3. 微信小程序之旅一(页面渲染)
  4. 记华为综合面试(IT集成类)
  5. XLua访问C#中的List或者数组
  6. Spring Cloud学习笔记---一分钟知晓Zuul
  7. Java 读取txt文件生成Word文档
  8. linux 解压 WinRAR 压缩文件
  9. Nodejs页面访问加载静态资源
  10. python 日历壁纸_将桌面日历添加到您的MAC
  11. hilbert方程组matlab,数值分析(Hilbert矩阵)病态线性方程组的求解Matlab程序
  12. 第三方开发工具—PyCharm(安装、使用、汉化)超详细、图超多、注脚特多(Windows操作系统)
  13. NNDL 实验五 前馈神经网络(3)鸢尾花分类
  14. MEION:Costas环 环路滤波器参数设置程序
  15. NTP网络校时(北斗卫星授时设备)技术核心源码让网络时间同步不再难
  16. 三维主成分图matlab,PCA主成分分析之三维演示(Matlab)
  17. mybatis 开启日志记录 打印sql语句
  18. ctfshow 萌xin赛
  19. 解析机器人与人工智能领域的创新创业
  20. 2021工业交换机前十大品牌排行榜,工业交换机哪个牌子好?

热门文章

  1. 小程序源码:聊天斗图微信表情包
  2. 【本地ASP网站】Microsoft OLE DB Provider for ODBC Drivers
  3. VUE | key的内部原理、Vue监测数据的原理、Vue.set()和vm.$set()的使用
  4. 超实用!7 个优秀的 UI 交互动画技巧
  5. Taylor公式和插值多项式
  6. 手机里面的照片被误删了怎么找回?
  7. 佐糖推出API服务,智能抠图去背景人像分割一键完成
  8. 许鞍华新片《七里地》催泪 网友:看完想回家过年
  9. 【历史上的今天】5 月 21 日:Simula 67 发布;微软推出 Xbox One;计算机先驱诞生日
  10. 头条/抖音小程序内容安全检测(违规词过滤)