YamlBeans
概述
YAML是一种人性化的数据格式,使用YAML来替代XML和properties文件,可以获得更多的表现力(支持lists,maps,anchors等结构),以及更容易的手工编辑。 而YamlBeans则可以让Java对象和YAML格式之间的转换(序列化和反序列化)变得更容易。
pom.xml 文件添加依赖
com.esotericsoftware.yamlbeans
yamlbeans
1.08
基本的反序列化
YamlReader这个类用于将YAML格式数据反序列化为Java对象。下面定义了一个包含4个实体的Map,其中最后一个实体项phone numbers又是一个包含了2个item的List集合,而每一个item又是一个Map结构。
name: Nathan Sweet
age: 28
address: 4011 16th Ave S
phone numbers:
- name: Home
number: 206-555-5138
- name: Work
number: 425-555-2306
“read()”方法可用来读取contact.yml文件中描述的YAML对象,并将其反序列化为对应的HashMaps,ArrayLists和Strings。因为我们已经知道上面示例的YAML文件中定义的对象是一个Map,所以下面示例中我们可以直接转换为java对象并使用它。
YamlReader reader = new YamlReader(new FileReader("contact.yml"));
Object object = reader.read();
System.out.println(object);
Map map = (Map)object;
System.out.println(map.get("address"));
多个对象
一个YAML格式的文件中可以包含多个YAML对象,多个YAML对象之间用---隔开(开头第一个可以省略)
name: Nathan Sweet
age: 28
---
name: Some One
age: 25
下面示例中,当while循环中每次调用YamlReader类中read()方法时,就会将contact.yml文件中对应顺序的YAML对象反序列化成一个与之对应结构的Java对象。 下面代码会先后输出字符串"28","25":
YamlReader reader = new YamlReader(new FileReader("contact.yml"));
while (true) {
Map contact = reader.read();
if (contact == null) break;
System.out.println(contact.get("age"));
}
反序列化其他类