YML解析框架SnakeYaml简介

YML解析框架SnakeYaml简介YML 解析框架 SnakeYaml 简介 1 SnakeYaml 概述 1 1yml 简介 1 2SnakeYaml 简介 2 SnakeYaml 实现验证 2 1snakeyml 依赖 2 2snakeyml 实现验证 1

大家好,欢迎来到IT知识分享网。

1. SnakeYaml概述

1.1 yml简介

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

1.2 SnakeYaml简介

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

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字符串 */ @Test public void ymlStrTest() { 
    Yaml yaml = new Yaml(); //实际上返回的是LinkedHashMap Object ret = yaml.load("name: jerry"); System.out.println(ret); } / * 解析yml文件 */ @Test public void ymlFileTest() { 
    Yaml yaml = new Yaml(); //java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List Object ret = yaml.load(this.getClass().getClassLoader().getResourceAsStream("snake.yml")); System.out.println(ret); } / * 解析yml文件转对象 */ @Test public void testAddress() { 
    Yaml yaml = new Yaml(); DataSource ret = yaml.loadAs(this.getClass().getClassLoader().getResourceAsStream("source.yml"), DataSource.class); System.out.println(ret); } / * 创建yml字符串 */ @Test public 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()); } @Test public void testDump2() { 
    DataSource dataSource = new DataSource(); dataSource.setUsername("jerry"); dataSource.setPassword(""); 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:3306 username: root password:  

source.yml

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/102331.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信