我正在使用Jackson 1.9.x.
坚持动物的例子,这是我想做的事情:
坚持动物的例子,这是我想做的事情:
public class Animal { private String type; // accessors } public class Mammal extends Animal { private String diet; // accessors } public class Bird extends Animal { private boolean tropical; // accessors }
我想要做这样的事情(我将几个子类型映射到一个类,另外一个类别)
@JsonTypeInfo(use = Id.NAME,include = As.PROPERTY,property = "type") @JsonSubTypes({@JsonSubTypes.Type(value = Mammal.class,name = "Dog"),@JsonSubTypes.Type(value = Mammal.class,name = "Cat"),@JsonSubTypes.Type(value = Bird.class,name = "Dodo"},name = "Cockatoo"}) public class Animal { }
我现在看到的是,杰克逊只会认识到“狗到哺乳动物”和“Dodo-to-Bird”映射.这是因为StdSubtypeResolver._collectAndResolve()只允许同一个类注册一次(由于NamedType.equals()的实现).
解决方法
也许不是使用注释.问题来自于这种映射对于序列化不起作用,而现有映射确实需要一对一(双向)关系.
但您可能想要在 jackson-databind issue tracker提交RFE;添加支持可能是可能的.
但您可能想要在 jackson-databind issue tracker提交RFE;添加支持可能是可能的.
原文地址:https://www.jb51.cc/java/126615.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。