通常,当使用 Jackson 进行多态反序列化时,我有一个映射到类的字符串字段,并且可以这样做。
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "methodName")
@JsonSubTypes({
@JsonSubTypes.Type(value = MyFirstClass.class, name = "firstClassName"),
@JsonSubTypes.Type(value = MySecondClass.class, name = "secondClassName")})
如果该值是整数而不是字符串,我找不到任何简单的示例来说明如何执行此操作。 例如,如果我的 JSON 包含“methodName”:1,而不是“methodName”:“firstClassName”,我将如何选择要反序列化到哪个类?
最佳答案
没有“简单”的方法可以做到这一点。您必须编写自己的序列化机制实现,以及反序列化机制的实现。这种实现的危险如此之多,因此您最好只引用您的 typeinfo 属性并将其用作字符串。
关于java - Jackson 中的多态反序列化基于整数,而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978457/