YML解析框架SnakeYaml简介

  • 1. SnakeYaml概述
    • 1.1 yml简介
    • 1.2 SnakeYaml简介
  • 2. SnakeYaml实现验证
    • 2.1 snakeyml依赖
    • 2.2 snakeyml实现验证

1. SnakeYaml概述

1.1 yml简介

yaml简称yml,什么是yml,官方解释说,yml不是标记性语言,YAML 是一种人性化的数据序列化,适应所有编程语言的语言。

yml官网地址:https://yaml.org/

1.2 SnakeYaml简介

SnakeYaml就是用于解析YAML,序列化以及反序列化的第三方框架,解析yml的三方框架有很多,SnakeYaml,jYaml,Jackson等,但是不同的工具功能还是差距较大,比如jYaml就不支持合并(<<)和(—)操作。

SnakeYaml是一个完整的YAML1.1规范Processor,支持UTF-8/UTF-16,支持Java对象的序列化/反序列化,支持所有YAML定义的类型。
SnakeYaml地址:http://yaml.org/type/index.html

2. SnakeYaml实现验证

2.1 snakeyml依赖

mvn仓库地址:https://mvnrepository.com/artifact/org.yaml/snakeyaml/1.30

<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml -->
<dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.30</version>
</dependency>

2.2 snakeyml实现验证

DataSource

/*** @author zrj* @since 2022/1/25**/
@Data
public class DataSource {private String url;private String username;private String password;
}

SnakeYamlTest

import org.junit.Test;
import org.yaml.snakeyaml.Yaml;import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;/*** snake yml测试** @author zrj* @since 2022/1/25**/
public class SnakeYamlTest {/*** 解析yml字符串*/@Testpublic void ymlStrTest() {Yaml yaml = new Yaml();//实际上返回的是LinkedHashMapObject ret = yaml.load("name: jerry");System.out.println(ret);}/*** 解析yml文件*/@Testpublic void ymlFileTest() {Yaml yaml = new Yaml();//java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.ListObject ret = yaml.load(this.getClass().getClassLoader().getResourceAsStream("snake.yml"));System.out.println(ret);}/*** 解析yml文件转对象*/@Testpublic void testAddress() {Yaml yaml = new Yaml();DataSource ret = yaml.loadAs(this.getClass().getClassLoader().getResourceAsStream("source.yml"), DataSource.class);System.out.println(ret);}/*** 创建yml字符串*/@Testpublic void testDump1() {Map<String, Object> obj = new HashMap<String, Object>();obj.put("name", "Jerry");obj.put("age", 30);Yaml yaml = new Yaml();StringWriter sw = new StringWriter();yaml.dump(obj, sw);System.out.println(sw.toString());}@Testpublic void testDump2() {DataSource dataSource = new DataSource();dataSource.setUsername("jerry");dataSource.setPassword("123456");dataSource.setUrl("http://hello.com");Yaml yaml = new Yaml();StringWriter sw = new StringWriter();yaml.dump(dataSource, sw);System.out.println(sw.toString());}}

snake.yml

# 该文件配置会继承bootstrap.xml,只需要配置数据库等差异配置
spring:datasource:url: jdbc:mysql://127.0.0.1:3306username: rootpassword: 123456

source.yml

url: jdbc:mysql://127.0.0.1:3306
username: root
password: 123456

参考文档:JAVA使用SnakeYAML解析与序列化YAML

YML解析框架SnakeYaml简介相关推荐

  1. Golang 微框架 Gin 简介

    Golang 微框架 Gin 简介 框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框 ...

  2. 解析mysqlbinlog日志_关于mysql-binlog日志解析框架

    欢迎广大码农爱好者向我推荐框架,我会择其精要.有趣者分享给大家. 今天下午,有同学献出了一款软件,说是海外澳洲番邦向朕进贡的,于是品尝了一番. 软件名称:mysql-binlog-connector ...

  3. java 数学公式解析框架有哪些_开源工具 | 推荐几个Gitee火热Java项目

    openEA开源周刊 openEA开源社区的官方运营载体 这里每天给大家呈现有价值的开源资讯,欢迎您的来稿与推荐,点击上方蓝色字,加入我们吧! 摘要:OkHttps 是近期开源的对 OkHttp3 轻 ...

  4. Java字节码框架ASM简介

    Java字节码框架ASM简介 1. ASM概述 1.1 ASM简介 1.2 ASM提供API 1.3 ASM核心模块 2. ASM应用 2.1 ASM依赖 2.2 代码实现 2.3 测试验证 1. A ...

  5. Golang爬虫框架 colly 简介

    Golang爬虫框架 colly 简介 colly是一个采用Go语言编写的Web爬虫框架,旨在提供一个能够些任何爬虫/采集器/蜘蛛的简介模板,通过Colly.你可以轻松的从网站提取结构化数据,然后进行 ...

  6. snakeyaml 简介、中文文档、中英对照文档 下载

    snakeyaml 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 snakeyaml-1.12.jar snakeyaml-1.12-API文档 ...

  7. TF之AutoML之AdaNet框架:AdaNet框架的简介、特点、使用方法详细攻略

    TF之AutoML之AdaNet框架:AdaNet框架的简介.特点.使用方法详细攻略 目录 AdaNet框架的简介 AdaNet框架的特点 AdaNet框架的使用方法 AdaNet框架的简介 谷歌开源 ...

  8. TF之AutoML框架:AutoML框架的简介、特点、使用方法详细攻略

    TF之AutoML框架:AutoML框架的简介.特点.使用方法详细攻略 目录 AutoML框架的简介 AutoML框架的特点 AutoML框架的使用方法 AutoML VS AutoKeras 框架 ...

  9. DL框架之AutoKeras框架:深度学习框架AutoKeras框架的简介、特点、安装、使用方法详细攻略

    DL框架之AutoKeras框架:深度学习框架AutoKeras框架的简介.特点.安装.使用方法详细攻略 Paper:<Efficient Neural Architecture Search ...

  10. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

最新文章

  1. SQL Server 2000安装时不出现安装界面,进程中存在解决
  2. 雅客EXCEL(7)-EXCEL居家常用必备函数(vlookup,IF,AND,OR)
  3. 新式类和经典类的区别类的特殊方法单例模式
  4. SylixOS中select原理及使用分析
  5. 计量经济学计算机输出结果,计量经济学作业答案A..doc
  6. 苹果6s强制删除id锁_苹果手机丢了怎么找回?
  7. C# vs note
  8. 笔记:UITextView内容垂直居中方法
  9. Windows环境下安装python+tensorflow
  10. 倍福PLC使用Visualization功能实现可视化界面
  11. 显卡测试软件 温度,显卡温度检测软件
  12. 骁龙神经处理引擎(Snapdragon Neural Processing Engine)
  13. 什么是IT和什么是IT行业
  14. 【Matlab】求解微分方程{上}(通解和特解)
  15. 自言自语(二)--英文无衬线体和有衬线体
  16. 2008.05.19 默哀祈福
  17. python开发之Socket网络编程
  18. fiddler抓包 破解微信投票
  19. 淘宝关键词搜索商品API
  20. 【漏洞】竟然可以盗取swarm测试网电子票?

热门文章

  1. C#调用三菱的MX Component控件与三菱PLC进行通讯
  2. 计算机策略组无法打开怎么办,Win10系统gpedit.msc组策略打不开怎么解决
  3. java反编译数组_JavaGuide/JAD反编译tricks.md at master · Github-Programer/JavaGuide · GitHub...
  4. JAVA静态变量 静态方法 两者间的区别 继承的特点 继承中的成员变量关系和成员方法 构造方法
  5. 全能视频播放器:OmniPlayer for Mac(1.4.6)
  6. 【Spring笔记09】Spring中事务传播机制(注解方式)
  7. 计算机软件用户体验报告,软件项目用户体验性测试报告.doc
  8. 1 集群Linux环境搭建
  9. 仓库管理系统c#语言代码,C#仓库管理系统+完整源代码
  10. 面经 - 计算机网络知识点