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());
}
 

猜你喜欢

转载自www.cnblogs.com/junjiang3/p/9463039.html