我想将包含许多不同键的平面文件转换为java bean dto,如下所示:
平面文件:
mykey=example
anotherkey=test
adress-street-1=downtown street
address-town-1=nyc
address-stree-2=some street
adrerss-town-2=los angeles
目标bean:
public class Content {
private String mykey;
private String anotherkey;
private List<Address> address;
}
public class Address {
private String street,
private String town;
}
问题:如何实现平面文件和目标bean之间的映射?想象一下几百个属性键。有些可能会多次出现,在这种情况下,它们会带有索引号,例如address-town-1
。
Content content = new Content();
while(true) {
String line = reader.readLine();
String key = line.split("=")[0];
String value = line.split("=")[1];
switch(key) {
case "mykey": content.setMykey(value);
case "anotherkey": content.setAnotherkey(value);
...
}
}
但我必须将这些映射编码几百次,这感觉不对。
问题:是否有更好的方法,例如使用某种xml配置/映射文件和反射?
BeanIO
接近我想要实现的目标。但它缺乏将多个不同字段转换为bean字段名称的能力。而且它也不能将address-*
示例中的集合分组到List
。
我可以使用任何已知的库或概念吗?一些可以使用例如xml配置文件进行格式化的框架?
或者我是否必须编写自己的解析器并使用反射将数据写入我的java对象?