我有像这样的yml文件
Staff:
- name: chris
type: intern
hourlywage: 20
- name: kevin
type: full
level: 9
我想解析这个yml文件以获取一个InternStaff
对象和一个FullStaff
对象。有没有办法做到这一点?
class Staff {
String name;
}
class InternStaff extends Staff {
String hourlyWage;
}
Class FullStaff extends Staff {
String level;
}
答案 0 :(得分:2)
Staff:
- !!InternStaff
name: chris
hourlyWage: 20
- !!FullStaff
name: kevin
level: 9
!!
之后的部分必须是合格的类名(包括类'包,如果有的话)。
如果您想保留语法(使用type: intern
而非标签),请参阅SnakeYaml docs for custom constructors and representers。使用一些代码,您还可以使标记更适合编写者:
Staff:
- !intern
name: chris
hourlyWage: 20
- !full
name: kevin
level: 9
这需要为!intern
和!full
标记注册自定义构造函数。