问题描述
我有一个可以以两种方式之一出现的 XML 结构(示例仅用于解释):
<User>
<Adress>Example Adress</Adress>
<Car>
<CarModel>Example car model</CarModel>
</Car>
</User>
<User>
<Adress>Example Adress</Adress>
<Motorcycle>
<MotorcycleModel>Example motorcycle model</MotorcycleModel>
</Motorcycle>
</User>
这就是我对类进行注释以尝试允许多态反序列化的方式:
public class User {
@JsonProperty("Address")
public String address;
public Vehicle vehicle;
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,include = JsonTypeInfo.As.PROPERTY,property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value=Car.class,name="Car"),@JsonSubTypes.Type(value=Motorcycle.class,name="Motorcycle")
})
public interface Vehicle {
}
public class Car implements Vehicle {
@JsonProperty("CarModel")
public String carModel;
}
public class Motorcycle implements Vehicle {
@JsonProperty("MotorcycleModel")
public String motorcycleModel;
}
但是,当我使用 xmlMapper.readValue(xmlString,User.class) 反序列化 XML 字符串时,从 User 对象生成的 Vehicle 在转换为汽车或摩托车时为空。我应该如何注释类以允许在此示例中进行多态反序列化?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)