Snakeyaml 解析文件

首先需要一个标准的JavaBean(无参构造, 每个成员需要有getter/setter方法)
例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class User {

private String name;
private int age;

public User() {}

public User(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}

然后需要在new Yaml的时候传入ClassLoader,例:

1
Yaml yaml = new Yaml(new CustomClassLoaderConstructor(this.getClass().getClassLoader()));

此时可以调用loadAs把文件解析成JavaBean了。

1
User user = yaml.loadAs(reader|input|file, User.class);

是以前困惑着我的问题,现在终于解决。

0%