zoukankan      html  css  js  c++  java
  • SnakeYaml使用

     新的项目中需要将yaml文件解析为对象,调研了决定使用snakeYaml,下面看一看怎么使用。

    一、引入依赖

    因为项目是使用maven构建的,所以我们在pom文件中引入snakeYaml的依赖,如下:

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

    二,简单示例

     public void testLoad() {
       String yamlStr = "key: hello yaml";
       Yaml yaml = new Yaml();
       Object ret = yaml.load(yamlStr);
       System.out.println(ret);
    }
    其具体步骤是这样:
    (1)使用Yaml类,创建一个Yaml对象,所有的解析操作都是从这个对象开始;
    (2)声明了一个yaml的字符串(当然也可以使用yaml文档等),定义了一个对象:key: hello yaml;
    (3)使用Yaml对象的load方法加载一段yaml字符串,返回解析之后的对象,其实这个对象是一个Map:LinkedHashMap;
    三、解析为对象
    假设有如下yml配置文件需要解析:
    given  : Chris
    family : Dumars
    address:
    -
    lines: 458 Walkman
    city : Royal Oak
    state : MI
    postal : 48046
    -
    lines: 459 Walkman
    city : Royal Oak
    state : MI
    postal : 48046
    定义javaBean如下:
    public class Person {
    private String given;
    private String family;
    private List<Address> address;
      //省略getter和setter方法
    }
    public class Address {
    private String lines;
    private String city;
    private String state;
    private Integer postal;
      //省略getter和setter方法
    }
    解析代码如下:
    public void parsePerson() {
    //指定yaml文件的root对象解析成Person类型
    Yaml yaml = new Yaml(new Constructor(Person.class));
    Person ret = (Person) yaml.load(this.getClass().getClassLoader()
    .getResourceAsStream("person.yaml"));
    Assert.assertNotNull(ret);
    Assert.assertEquals("MI", ret.getAddress().get(0).getState());
    }
     
  • 相关阅读:
    2014年工作总结
    正则表达式语法规则
    按照事务类型分析 DB2 事物的性能
    DB2定位锁等待
    深入研究线程池
    WebSphere应用服务器内存泄漏探测与诊断工具选择最佳实践
    一次WebSphere性能问题诊断过程
    WebSphere Application Server诊断和调优
    将 Spring 和 Hibernate 与 WebSphere Application Server 一起使用
    Websphere Application Server 环境配置与应用部署最佳实践
  • 原文地址:https://www.cnblogs.com/junjiang3/p/9463039.html
Copyright © 2011-2022 走看看