關於yaml是個什麼東西,就不細說了。
yaml官方文檔:http://www.yaml.org/
snakeyaml是用Java實現的解析yaml文件的庫,官方wiki: https://bitbucket.org/asomov/snakeyaml/wiki/Documentation
下面上我解析yaml文件的例子:
// me.yaml
age: 1
name: jiaobuchong
params:
event: what's up
url: http://www.jiaobuchong.com
favoriteBooks:
- Gone with the wind
- The Little Prince
對應的JavaBean類:
// Me.java
public class Me {
private Integer age;
private String name;
private Map<String, Object> params;
private List<String> favoriteBooks;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, Object> getParams() {
return params;
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
public List<String> getFavoriteBooks() {
return favoriteBooks;
}
public void setFavoriteBooks(List<String> favoriteBooks) {
this.favoriteBooks = favoriteBooks;
}
@Override
public String toString() {
return "Me{" +
"age=" + age +
", name='" + name + '\'' +
", params=" + params +
", favoriteBooks=" + favoriteBooks +
'}';
}
}
將配置項隱射到JavaBean中:
public class TestMeYaml {
@Test
public void testParseMeYaml() throws FileNotFoundException {
Yaml yaml = new Yaml();
Me me = yaml.loadAs(new FileInputStream(new File("config/me.yaml")), Me.class);
System.out.println(me);
}
}
如果yaml文件中有一個參數沒有配置,隱射到JavaBean中的值就是null。
作者:jiaobuchong
鏈接:https://www.jianshu.com/p/dd4bb7305ccf
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。