参考http://www.ruanyifeng.com/blog/2016/07/yaml.html

基本语法规则如下。
    •    大小写敏感
    •    使用缩进表示层级关系
    •    缩进时不允许使用Tab键,只允许使用空格。
    •    缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

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

下面只记录一些比较特别的表示,详细内容可看链接

1.null用~表示,如

parent: ~ 

2.时间,日期

时间采用 ISO8601 格式:

iso8601: --14t21::43.10-: 

转成JavaScript为:

{ iso8601: new Date('2001-12-14t21:59:43.10-05:00') }

日期采用复合 iso8601 格式的年、月、日表示;

date: --

转为 JavaScript 如下:

{ date: new Date('1976-07-31') }

3.强制转换类型——使用两个感叹号

e: !!str
f: !!str true

转为 JavaScript 如下

{ e: '', f: 'true' }

4.字符串

1)字符串默认不使用引号表示,如:

str: 这是一行字符串

转为 JavaScript 如下:

{ str: '这是一行字符串' }

2)如果字符串之中包含空格或特殊字符,需要放在引号之中,如:

str: '内容: 字符串'

转为 JavaScript 如下:

{ str: '内容: 字符串' }

3)单引号之中如果还有单引号,必须连续使用两个单引号转义。

str: 'labor''s day' 

4)字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。

str: 这是一段
多行
字符串

转为 JavaScript 如下:

{ str: '这是一段 多行 字符串' }

5)多行字符串可以使用 | 保留换行符,也可以使用 > 折叠换行。(没有则是空格连成一句)

this: |
Foo
Bar
that: >
Foo
Bar

转为 JavaScript 代码如下:

{ this: 'Foo\nBar\n', that: 'Foo Bar\n' }

6) +表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

s1: |
Foo
s2: |+
Foo
s3: |-
Foo

转为 JavaScript 代码如下:

{ s1: 'Foo\n', s2: 'Foo\n\n\n', s3: 'Foo' }

5.引用

锚点&和别名*,可以用来引用。

defaults: &defaults   #这个冒号后面必须是一个空格
adapter: postgres
host: localhost development:
database: myapp_development
<<: *defaults test:
database: myapp_test
<<: *defaults

&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点

所以等同于下面的代码:

defaults:
adapter: postgres
host: localhost development:
database: myapp_development
adapter: postgres
host: localhost test:
database: myapp_test
adapter: postgres
host: localhost

另一个例子为:

- &showell Steve
- Clark
- Brian
- Oren
- *showell

转为 JavaScript 代码如下:

[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]

yaml的简单学习的更多相关文章

  1. Vagrant 安装Oracle19c RAC测试环境的简单学习

    1. 学习自网站: https://xiaoyu.blog.csdn.net/article/details/103135158 简单学习了下 能够将oracle RAC开起来了 但是 对后期的维护和 ...

  2. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  3. shiro简单学习的简单总结

    权限和我有很大渊源. 培训时候的最后一个项目是OA,权限那块却不知如何入手,最后以不是我写的那个模块应付面试. 最开始的是使用session装载用户登录信息,使用简单权限拦截器做到权限控制,利用资源文 ...

  4. CentOS 简单学习 firewalld的使用

    1. centos7 开始 使用firewalld 代替了 iptables 命令工具为 firewall-cmd 帮助信息非常长,简单放到文末 2. 简单使用 首先开启 httpd 一般都自带安装了 ...

  5. Windows 下 Docker 的简单学习使用过程之一 dockertoolbox

    1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...

  6. 在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

    嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

  7. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  8. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  9. mongodb,redis简单学习

     2.mongodb安装配置简单学习                   配置好数据库路径就可以mongo命令执行交互操作了:先将服务器开起来:在开个cmd执行交互操作                 ...

随机推荐

  1. mysql给root开启远程访问权限

    MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问. !!!所以必须给root修改可以远程访问的权限 1.在连接服务器后,操作mysql系统 ...

  2. react-router 嵌套路由 内层route找不到

    今天在做嵌套路由的时候,没有报错,但是页面显示为空,搜索了一下资料,有两个原因: 1.exact精确匹配 <Route component={xxx} path="/" /& ...

  3. ionic APP二维码插件 地址

     二维码插件地址第一个   https://github.com/kyocn/BarcodeScanner git网址 下载网址  https://github.com/kyocn/BarcodeSc ...

  4. 浅谈运维中的安全问题-FTP篇

    写这一系列文章的动因很简单,在年前最后一个项目的时候在客户现场做了的几个安全加固.由于时间问题,很多东西就拿来主义没经过思考直接更改了,并未细细品味其中的原理和方法,所以特地搭建实验环境,分析下其中的 ...

  5. Kotlin入门(29)任务Runnable

    任务Runnable定义了一个可以独立运行的代码片段,通常用于界面控件的延迟处理,比如有时为了避免同时占用某种资源造成冲突,有时则是为了反复间隔刷新界面从而产生动画效果.运行一个任务也有多种形式,既可 ...

  6. (python)数据结构---元组

    一.描述 一个有序的元素组成的集合 元组是不可变的线性数据结构 二.元组的相关操作 1.元组元素的访问 索引不可超界,否则抛异常IndexError 支持正负索引 t = (2, 3) print(t ...

  7. SQL中常用字符串函数

    --CHARINDEX 返回指定字符的位置--2个参数,第一个是要查找的字符串 第二个参数:要搜索的字符串 参数3:开始查找的位置--查找位置从1开始,返回结果为0时表示为结果为空 SELECT CH ...

  8. Linux系统修改日期时间

    linux修改时间   服务器时间与网络时间不符: 一.手动修改 1. date命令:查看当前时间 2. date -s  时分秒 :修改时间 还需要把日期改过来 3. date -s  完整日期时间 ...

  9. c/c++ 智能指针 weak_ptr 使用

    智能指针 weak_ptr 使用 weak_ptr用途: 1,解决空悬指针问题 2,解决循环引用问题 weak_ptr特点:没有*操作和->操作 weak_ptr是不控制所指对象生存周期的智能指 ...

  10. Hibernate 5 入门指南-基于JPA

    首先创建\META-INF\persistence.xml配置文件并做简单的配置 <persistence xmlns="http://java.sun.com/xml/ns/pers ...