Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在Java中实现读写逻辑
一个简单的数组,用-来列出即可,如下
- apple - orange - banana一个简单的kv对象
fruit: name: banana amount: 3 price: 4.99加载后数据结构如下:
首先大结构是数组,但是数组内部是一个kv结构的对象
- name: apple price: 1.23 - name: orange price: 1.33 - name: banana price: 2.33加载后数据结构如下:
首先大结构是对象,对象内部的成员是数组
name: - apple - orange - banana price: - 4.99 - 2.34 - 3.99加载后数据结构如下:
用中括号包括起来,形成一个二维数组,加载后的数据结构如下
对于kv结构的对象,支持通过大括号的方式来替代,简化配置文件的行数
love: {name: apple, price: 2.99} hite: {name: orange, price: 1.99}上面的配置,等同于
love: name: apple price: 2.99 hite: name: orange price: 1.99在Java生态环境中,读写YAML文件算是比较简单的一个事情了,一个是自己读取文件,然后按照语法进行解析(属于自己造轮子);另外一个就是利用开源库来读写,这里当然是选择已经颇为完善的开源库来处理了
pom文件中添加maven依赖,版本号查询最新的即可
<dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.17</version> </dependency>实现比较简单了,直接利用 Yaml对象的 loadAs/dump 方法即可,对于测试用例,前面的截图已经给出,不再赘述
核心语法:
使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不要使用tab)# 表示单行注释破折号后面跟一个空格表示列表用冒号和空格表示键值对 key: value简单数据可以不使用引号括起来,包括字符串数据用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符转义demo:
comment: '#' skip: "abc\n123"对应测试用例及输出
@Test public void testYamlUtil() throws IOException { TC map = YamlUtil.loadConf("test.yml", TC.class); System.out.println(map); } @Data @AllArgsConstructor @NoArgsConstructor public static class TC { private String comment; private String skip; }输出结果
YamlUtilTest.TC(comment=#, skip=abc 123)一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
微博地址: 小灰灰BlogQQ: 一灰灰/3302797840转载于:https://www.cnblogs.com/yihuihui/p/9200790.html