我们说我有这些pojos:
public class Person()
{
private String firstName;
private String lastLamel
private Address address;
// setters, getters, toString...
}
public class Address()
{
private String line1;
private String city;
// setters, getters, toString...
}
我们可以轻松地序列化以下json:
{
"firstName":"John"
"lastName":"Smith"
"address" : {
"line" : "Fake Street",
"city" : "Fake town"
}
}
现在,让我们说,除了上面的json之外,我还需要从具有完全不同结构的XML序列化对象:
<r00t>
<PrsInfo>
<frNm>John</fnNm>
<lNm>Smith</lNm>
</PrsInfo>
<lctn>
<addr>
<ln>Fake Street</ln>
<town>Fake town</town>
</addr>
</lctn>
</r00t>
现在,首先我考虑了MOXy,因为您可以在external file中定义绑定。虽然,我有一种感觉,与杰克逊一起玩MOXy会很奇怪。然后,我调查了Jackson Mix-Ins。 Mixins需要有一个包含映射指令的抽象类(或接口),因此PersonMixIn和AddressMixIn。就我而言,正如我所理解的那样,我必须制作pojos的副本,作为奇怪结构的xml之间的代理。也就是说,我试图避免使用Person,PersonMixin,Address,AddressMixin等,因为对于我试图完成的任务来说,这似乎有点过分了+如果你有一个任务会非常混乱两个以上的pojos序列化。
有没有办法让我有一个PersonMixIn类并映射那个xml(带地址)?