朋友们

Jackson框架提供了基于注释的方法来在序列化过程中发出类型信息。

我不想在我的任何课程中使用@JsonTypeInfo批注。

上面的注解有其他选择吗?

如果是,请提供的示例,如果可能的话。

最佳答案

覆盖JacksonAnnotationIntrospector并通过使用setAnnotationIntrospector在ObjectMapper中使用您的Introspector。这是您的AnnotationIntrospector的代码片段:

@Override
public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config,
        AnnotatedClass ac, JavaType baseType) {
    if (Modifier.isAbstract(baseType.getRawClass().getModifiers())){
        StdTypeResolverBuilder typeResolverBuilder = new StdTypeResolverBuilder();
        typeResolverBuilder.typeProperty("@class");
        typeResolverBuilder.inclusion(As.PROPERTY);
        typeResolverBuilder.init(Id.CLASS, null);
        return typeResolverBuilder;
    }
    return super.findTypeResolver(config, ac, baseType);
}

关于json - jackson @JsonTypeInfo注释是否有替代方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12297050/

10-09 03:25