yaml格式
yaml中允许表示三种格式,分别为常量值、对象和数组
例如:

其中#作为注释,yaml中只有行注释
基本格式要求:
1.大小写敏感;2.使用缩进代表层级关系;
3.缩进只能使用空格,不能使用tab键,不要求空格个数,只需要相同层级左对齐(一般2或4个空格)。
对象:
使用冒号代表,格式为key: value。冒号后要有一个空格:

可使用缩进表示层级关系:

yaml中还支持流式(flow)语法表示对象,比如上面例子可写为:

较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的key,配合一个冒号加一个空格代表一个value:

意思即对象的属性是一个数组[complexkey1, complexkey2],对应的值也是一个数组[complexvalue1, complexvalue2]
使用流式语法即为[complexkey1,complexkey2]:[complexvalue1,complexvalue2]
数组
使用一个短横线加一个空格表示一个数组项:

当然也可以有这样的写法:

可以简单的理解为[[java,LOL]]
一个相对复杂的例子:

意思是companies属性是一个数组,每一个数组元素又是由id、name、price三个属性构成;
使用流式语法表示为:

常量:
yaml中提供了多种常量结构,包括整数、浮点数、字符串、null、日期、布尔值、时间。
使用+代表时区
特殊符号
1. --- yaml可以在同一个文件中,使用---表示一个文档的开始:

代表定义了两个profile,一个是development,一个是production;也常使用---来分割不同的内容,比如记录日志:

2. ...和---配合使用,在一个配置文件中代表一个文件的结束:

相当于在一个yaml中连续写了两个yaml配置项
3. !!yaml中使用!!做类型强行转换:

相当于把数字和布尔值类型强转换为字符串

将数组解析为set集合,简单理解,转化的内容就是[{Mark McGwire: 65}, {Sammy Sosa: 63}, {Ken Griffy: 58}],去掉重复。
4. >在字符串中折叠换行, |保留换行,这两个符号是yaml中字符串经常使用的符号,比如:

那么,accomplishment的结果为:将换行符转化成了空格,需要主意的是,每行的文本钱一定要有一个空格

stats的结果是:

常见|符号多用于yaml中配置html片段:

5.引用。重复的内容在yaml中可以使用&符号来完成锚点定义,使用*来完成锚点引用,例如:

可以看到,在hr中,使用&SS为Sammy Sosa设置了一个锚点引用,名称为SS,在rbi中,使用*SS来引用锚点:

我们也可以这样定义:

注意:不能独立的定义锚点,比如不能直接这样写: &SS Sammy Sosa;另外,锚点能够定义更复杂的内容,比如:

那么hr相当于引用了default的数组,注意,hr: *default要写在同一行。
6.合并内容。主要和锚点配合使用,可以将一个锚点内容直接合并到一个对象中,例如:

在merge中定义了四个锚点,分别在sample中使用。
sample1中,<<: *CENTER意思是引用{x: 1, y:2},并且合并到sample1中,那么合并的结果为:sample1={r=10, y=2,x=1}
sample2中,<<: [*CENTER, *BIG]意思是联合引用{x:1, y:2}和{R: 10},并且合并到sample2中,那么结果为sample2={other=haha,x=1,y=2}
sample3中,引入了*CENTER,*BIG,还使用了r: 100覆盖了引入的r:10,所以sample3值为sample3={r=100, y=2, x=1}
yaml格式的更多相关文章
- golang使用yaml格式解析构建配置文件
现在主流的配置文件格式有这么几种,xml.yaml.config… xml就算了,太挫了,太土, 太繁琐… config 就是mysql,apache my.cnf的那种格式,这个格式适合功能分层, ...
- kubernetes yaml格式的Pod配置文件
kubernetes yaml文件解析 # yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必 ...
- Unity3D可以查看YAML格式的场景文件,采用Notepad++
在Editor Settings 将Asset Serialization 的 mode设置成Force Text,否则不能查看YAML格式! Unity圣典描述:Textual Scene File ...
- yaml格式配置文件
YAML 是一种可读性非常高,与程序语言数据结构非常接近.同时具备丰富的表达能力和可扩展性,并且易于使用的数据标记语言. python中处理 Yaml 格式的数据需要先下载pyyaml: pip in ...
- Fiddler插件---将Mapi请求自动转为HTTPRunner测试用例(YAML格式)
背景 继之前鼓捣出了Mapi解密插件之后,在团队内已经使用了三年之久,一跃成为团队最爱欢迎的测试工具之一(加个之一,低调谦虚一点). 随着团队推行HttpRunner搞接口自动化:编写和维护Case带 ...
- kubernetes内yaml格式
yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 可通过 kubectl api-versions 获取 kind: Pod #必选,Pod metada ...
- mongodb3.2配置文件yaml格式 详解
mongodb3.x版本后就是要yaml语法格式的配置文件,下面是yaml配置文件格式如下:官方yaml配置文件选项参考:https://docs.mongodb.org/manual/ ... #c ...
- yaml 格式
来源:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 1.YAML是一种通用的数据串行格式 2.基本语法规则: 大小写敏感 使用缩进表示层级 ...
- SpringCloud入门之YAML格式文件规范学习
1. 认识 YAML YAML(发音 /ˈjæməl/)是一个类似 XML.JSON 的数据序列化语言.其强调以数据为中心,旨在方便人类使用:并且适用于日常常见任务的现代编程语言.因而 YAML 本身 ...
随机推荐
- sscanf函数详解 & 查找文件字符串
1. sscanf函数 sscanf() - 从一个字符串中读进与指定格式相符的数据. 1.1 函数原型 int scanf(const char *format, ...); int fscanf( ...
- ASP.NET编辑与更新数据(非GridView控件实现)
Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与 ...
- 在net中json序列化与反序列化
准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则: 数据在键值对中 数据由逗号分隔 花括 ...
- 撩课-Web大前端每天5道面试题-Day28
1.用setTimeout()方法来模拟setInterval()与setInterval()之间的什么区别? 首先来看setInterval的缺陷,使用setInterval()创建的定时器确保了定 ...
- Java - TreeMap源码解析 + 红黑树
Java提高篇(二七)-----TreeMap TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap ...
- Java - Thread 和 Runnable实现多线程
Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式 概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过jav ...
- Java对MySQL数据库进行连接、查询和修改(转)
Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...
- PHP中NOTICE错误常见解决方法
对于初学者,肯定会遇到不同的错误提示,比如:警告,致命,等等,其中NOTICE错误等级最低,页面中,好多类似 Notice: Use of undefined constant title - ass ...
- 排序算法(4)--Selection Sorting--选择排序[1]--Simple Selection Sort--简单(直接)选择排序
1.基本思想 在要排序的一组数中,选出最小的一个数与第一个位置的数交换:然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止. 2.实现原理 每趟从待排序的 ...
- 除虫记之C#调用C函数出现的诡异错误
作者:朱金灿 来源:http://blog.csdn.net/clever101 同事反映在在项目中使用C#程序调用我们部门编写的C++模块出现一个诡异错误:在调用A算法失败后,其它算法均不能调 ...