YAMLsnakeyaml简介
简介
官网
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>
入门
参考
- http://www.ruanyifeng.com/blog/2016/07/yaml.html
YAMLsnakeyaml简介相关推荐
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- TensorRT简介
TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...
- 谷粒商城学习笔记——第一期:项目简介
一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...
- 通俗易懂的Go协程的引入及GMP模型简介
本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...
- Linux 交叉编译简介
Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...
- TVM Operator Inventory (TOPI)简介
TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...
- 计算机视觉系列最新论文(附简介)
计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...
- 2021年大数据ELK(二十三):Kibana简介
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. Kibana简介 通过上面的这张图就可以看到,Kibana可以用来展示丰富的图表. ...
最新文章
- 什么?用@Async会内存溢出?看看你的线程池配置了没!
- Aix 6.1下安装Oracle11g详细文档
- python mysqldb insert_python MySQLdb使用教程详解
- 我的idea突然没有SVN了是怎么回事
- [转] Centos 6.4 python 2.6 升级到 2.7
- 接口自动化-接口测试初介
- 矩阵按键之行列式扫描
- 机器学习发展历史回顾
- 目瞪口呆,4款1M不到的实用软件,颠覆你的认知
- 关于数据迁移:解决kettle中mysql的数据是tinyint的kettle查出来后变成boolean问题
- Java路径遍历漏洞修复心得
- 机器学习经典模型简单使用及归一化(标准化)影响
- 头歌 CC++基本输入输出
- 你知道数据运营日常主要工作吗?
- Flash Professional / 处理 Flash 文档 XFL(XML格式描述的CS5 FLA)
- 三种方式修改 MySQL 数据库名
- java ora-12505_Java Oracle本地主机连接错误(ORA-12505)
- 2021-05-18 C#.NET面试题 Session有什么重大BUG,微软提出了什么方法加以解决?
- android模拟来电功能,救场神器!假装有人打电话来的虚拟来电软件推荐
- geoserver osm 导入_[原]导入OpenStreetMap海图数据,并在GeoServer上发布
热门文章
- DGIOT物联网开源平台——腾讯云轻量应用服务器部署
- python什么字体好看_玩转python字体
- python爬取豆瓣电影top250网络响应_python使用requests+re爬取豆瓣电影top250简单入门爬虫...
- 【植被指数学习笔记】
- ARM V8 SPEC B1 AArch64 Application level programer‘s Model
- (原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究
- SQL语句的各种连接查询
- python爬贴吧回复内容_Python爬虫_获取贴吧内容
- 计算机网络知识点总结-第二章:物理层
- SteamVR简介(Yanlz+Steam+VR+Unity+AR+MR+XR+=)