通过一篇YAML来学习YAML
yaml 兼容 json,至今已发展至 1.2版。支持N多种编程语言。官网:http://www.yaml.org/
格式在线校验:http://nodeca.github.io/js-yaml/
下面就通过一篇YAML文件,来学习YAML:
%yaml 1.2
%TAG !tagRef! tag:yaml.org,2002: # %TAG !name! tag:url
--- #块分隔符。既是指令声明的结束符,又是文档块的分割标记
yaml online study: http://nodeca.github.io/js-yaml/ # 单行表示时,在 : 后面得有空格。这个是yaml学习校验的网站。可以在这里进行测试学习 basic structures: # 折行表示时,在 : 后面则不必有空格
indent style: 文档的结构,由缩进来决定。为了保证可维护性,tab键不能用作缩进,主要因为不同操作系统,对tab处理不同。
separation space: 空格是字符 分隔 符(包括tab)
comment: 注释。使用 # 来作注释
tag: # 标记,可以分为全局tag,和Local tag
- global : global 可以被其他的 yaml引用,且要保证唯一性。采用url schema,用于定位全局标签的。类似于xml namespace.
- local : # local不会被其他yaml使用,也不需要保证唯一性。local tag一般采用 ! 作为标示符
primary tag handle: 使用! 作为一级标签处理
secondary tag handle : # 使用!! 作为二级标签处理。通常是指定数据类型
!!map {
? !!str "First occurrence"
: &A !!str "Value", # 声明一个anchor A
? !!str "Second occurrence"
: *A, # use the anchor A
}
named tag handle : #需要使用 %TAG 来定义的。the follow is a named tag
examples: {
!tagRef!str foo bar : url # 这里引用了在文档开始定义的命名标签
} directive:
- yaml : yaml指令用来指定当前文档的YAML版本。它的格式是 %yaml $version。该指令放在文件首行,第二行应该是块分隔符。
- tag: 参考上面的tag说明 datatype:
literal : # 一般字面量
string : 字符串,可以使用 !!str 来限定数据类型
int : 整数,可以使用 !!int 来限定数据类型
float : 浮点数,可以使用 !!float 来限定数据类型
bool : 布尔值,可以使用 !!bool 来限定数据类型。参考http://yaml.org/type/bool.html
null: 空值。可以使用!!null来限定数据类型
timestamp: 时间戳。可以使用!!timestamp来限定数据类型
binary: Base64的字符串表示。可以使用!!可以使用!!binary来限定数据类型来限定数据类型。参考http://yaml.org/type/binary.html
collection : #集合
sequence: #序列,也称为有序集合。
- 张三
- 李四
- 王五
set: # 集合。可以将其理解为java中的 hashMap,key不为null,value是null.
? hello
? yaml set
map: # Unordered set of key: value pairs.
cloc2:
Clark : Evans,
Brian : Ingerson
Oren : Ben-Kiki
omap: # ordered set of key: value pairs.
cloc2:
Clark : Evans,
Brian : Ingerson
Oren : Ben-Kiki
textBlock: #文本块
block1: |
absdfas
sdfasdf
asdfas
block2: >
absdfas
sdfasdf
asdfas
block3: "
absdfas
sdfasdf\n
asdfas"
block4: '
absdfas
sdfasdf\d
asdfas'
anchor: # 锚点
a: !!str &a1 b # 字符串b 处加了锚点a1
c: *a1 # 引用锚点a1
...
通过一篇YAML来学习YAML的更多相关文章
- SpringBoot-03-配置之yaml语法学习
3. SpringBoot配置 3.1 yaml语法学习 配置文件 Springboot使用一个全局的配置文件,配置文件名称固定 spplication.properties 语法结构:key=val ...
- day5模块学习--yaml文件处理
yaml文件处理(http://pyyaml.org/wiki/PyYAMLDocumentation) 摘要: 本文讲的是yaml在python上的使用教程详解, YAML是一种容易人类阅读 ...
- YAML 格式学习
目录 什么是YAML 一.注释和多文件 二.格式要求 三.数据结构 1.对象 2. 数组 3.常量 四.字符串 YAML的特殊字符 什么是YAML YAML是"YAML不是一种标记语言&qu ...
- (zhuan) 126 篇殿堂级深度学习论文分类整理 从入门到应用
126 篇殿堂级深度学习论文分类整理 从入门到应用 | 干货 雷锋网 作者: 三川 2017-03-02 18:40:00 查看源网址 阅读数:66 如果你有非常大的决心从事深度学习,又不想在这一行打 ...
- “全栈2019”22篇Java异常学习资料及总结
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"22篇Ja ...
- ruby YAML.load 和YAML.load_file区别
1. load( io ) Load a document from the current io stream. File.open( 'animals.yaml' ) { |yf| YAML::l ...
- Java并发包下锁学习第一篇:介绍及学习安排
Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...
- ansible-playbook的YAML语法学习
YAML:可以将你打算对多机器的批量操作放到一个文件中,顺序执行,可以根据机器做到根据机器信息判断执行,其他命令执行结果判断执行. YAML有着严格的层级要求,稍微有个缩进问题就会无法运行,所以学习过 ...
- JSON+YAML初步学习+ciscoconfparse
Git git clone 在github.com右上角点击加号创建新的repository 在Linux或Mac命令行下,找到你想存放这个repository的目录,然后git clone 某个re ...
随机推荐
- μC/OS-II 中的任务管理
1. 任务的状态及其转换 睡眠状态: 任务在没有被配备任务控制块或被剥夺了任务控制块时的状态叫做任务的睡眠状态. 等待状态: 正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会 ...
- 第一册:lesson twenty seven。
原文 :Mrs.smith's living room. Mrs.smith's living room is large. There is a television in the room. Th ...
- Webservice开发、引用
一.Webservice开发 1.在解决方案右键添加新建项目,新建空的web应用程序 2.在新建的项目右键添加新建项选择web服务 3.这里就是webservice 里的方法,可以添加自己需要的方法( ...
- T-SQL基础(四)之集合运算
三个运算符 T-SQL支持三个集合运算符:UNION.INTERSECT.EXCEPT. 集合运算符查询的一般形式如下: Query1 <set_operator> Query2 -- 这 ...
- Spring Boot从入门到精通之:一、Spring Boot简介及快速入门
Spring Boot Spring Boot 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来 ...
- 反射demo(拷贝一个对象)
经过了上一次对反射的初步认知,最近又接触到了后,做了一个小demo,感觉这次带了一点理解去做的,比第一次接触反射好了许多. 上次学习的链接,有一些反射用的基础语句.https://www.cnblog ...
- Lucene的简单用法
1.创建索引 package com.DingYu.Test; import java.io.File; import java.io.FileInputStream; import java.io. ...
- Html5页面内使用JSON动画的实现
有一天我们的UI设计师找到我说,要把页面中我自己用程序写的动画,换成他们给的json动画,原因是有的动画很复杂,自己写起来达不到他们的预期效果(写到这里我突然想到一个问题,这么复杂的动画为什么不使用g ...
- iphone投屏电脑 苹果x用无线充电好不好
众所周知,苹果新发布的iPhone 8和iPhone X支持无线充电功能,简单说就是在充电时用户只需把它们放到充电板上即可,不再需要插入Lightning线缆.而且如今iphone投屏电脑也是比较受欢 ...
- RabbitMQ 消息流程、AMOP 概念
AMOP Server:Broker.RabbitMQ Server,实现 AMOP 实体服务,接受客户端的连接 Conneciton:链接,应用程序与 Server 的网络连接 Channel:网络 ...