我目前正在将系统从Jackson 1.7.1升级到2.8.6。我有类似的东西:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
public interface LeSerializable extends Serializable
{
...
}
public interface Resource extends LeSerializable
{
...
}
public class ResourceV2 extends Resource implements IResourceV2
{
...
}
序列化工作正常,使用定义的Class创建属性类型,但是,对于反序列化,我有错误:
意外令牌(VALUE_NUMBER_INT),预期FIELD_NAME:缺少属性'键入'即包含类型id(对于类com.model.LeSerializable)
使用:
final ResourceV2 retObject = mapper.readValue(json, ResourceV2.class);
两个版本之间可能有任何改变的建议吗?