简介

官网
YAML,YAML Ain’t Markup Language
What It Is: YAML is a human friendly data serialization standard for all programming languages.
最新版本1.2,Java客户端有sankeyaml,camel。

YAML 语言(/ˈjæməl/ ),一种通用的数据串行化格式。
基本语法规则:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格
  • 缩进的空格数目不重要(不过一般都是2个空格),只要相同层级的元素左侧对齐即可
  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

YAML支持三种数据结构:

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

数据结构

对象

对象的一组键值对,使用冒号结构表示。Yaml 也允许另一种写法,将所有键值对写成一个行内对象。
hash: { name: Steve, foo: bar }

数组

一组连词线开头的行,构成一个数组。 数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。数组也可以采用行内表示法。

纯量

最基本的、不可再分的值。
null用~表示:girlfriend: ~
时间采用 ISO8601 格式:iso8601: 2001-12-14t21:59:43.10-05:00
日期采用复合 iso8601 格式的年、月、日表示:date: 1976-07-31
YAML 允许使用两个感叹号强制转换数据类型:

e: !!str 123
f: !!str true

补充

字符串
字符串默认不使用引号表示。
如果字符串之中包含空格或特殊字符,需要放在引号之中,单引号和双引号都可以使用,双引号不会对特殊字符转义。单引号之中如果还有单引号,必须连续使用两个单引号转义。字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。多行字符串可以使用|保留换行符,也可以使用>折叠换行。+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。字符串之中可以插入 HTML 标记。

引用

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

defaults: &defaultsadapter: postgreshost: localhost
development: database: myapp_development<<: *defaults
test:database: myapp_test<<: *defaults

等同于下面的代码。

defaults:adapter: postgreshost: localhost
development:database: myapp_developmentadapter:  postgreshost: localhost
test:database: myapp_testadapter:  postgreshost: localhost

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

其他

在线校验yaml文件格式
http://www.bejson.com/validators/yaml/

snakeyaml

<dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId>
</dependency>

入门

参考

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

YAMLsnakeyaml简介相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  5. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  6. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  7. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  8. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  9. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

  10. 2021年大数据ELK(二十三):Kibana简介

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. Kibana简介 通过上面的这张图就可以看到,Kibana可以用来展示丰富的图表. ...

最新文章

  1. 什么?用@Async会内存溢出?看看你的线程池配置了没!
  2. Aix 6.1下安装Oracle11g详细文档
  3. python mysqldb insert_python MySQLdb使用教程详解
  4. 我的idea突然没有SVN了是怎么回事
  5. [转] Centos 6.4 python 2.6 升级到 2.7
  6. 接口自动化-接口测试初介
  7. 矩阵按键之行列式扫描
  8. 机器学习发展历史回顾
  9. 目瞪口呆,4款1M不到的实用软件,颠覆你的认知
  10. 关于数据迁移:解决kettle中mysql的数据是tinyint的kettle查出来后变成boolean问题
  11. Java路径遍历漏洞修复心得
  12. 机器学习经典模型简单使用及归一化(标准化)影响
  13. 头歌 CC++基本输入输出
  14. 你知道数据运营日常主要工作吗?
  15. Flash Professional / 处理 Flash 文档 XFL(XML格式描述的CS5 FLA)
  16. 三种方式修改 MySQL 数据库名
  17. java ora-12505_Java Oracle本地主机连接错误(ORA-12505)
  18. 2021-05-18 C#.NET面试题 Session有什么重大BUG,微软提出了什么方法加以解决?
  19. android模拟来电功能,救场神器!假装有人打电话来的虚拟来电软件推荐
  20. geoserver osm 导入_[原]导入OpenStreetMap海图数据,并在GeoServer上发布

热门文章

  1. DGIOT物联网开源平台——腾讯云轻量应用服务器部署
  2. python什么字体好看_玩转python字体
  3. python爬取豆瓣电影top250网络响应_python使用requests+re爬取豆瓣电影top250简单入门爬虫...
  4. 【植被指数学习笔记】
  5. ARM V8 SPEC B1 AArch64 Application level programer‘s Model
  6. (原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究
  7. SQL语句的各种连接查询
  8. python爬贴吧回复内容_Python爬虫_获取贴吧内容
  9. 计算机网络知识点总结-第二章:物理层
  10. SteamVR简介(Yanlz+Steam+VR+Unity+AR+MR+XR+=)