Jackson @JsonTypeInfo注释是否有其他选择

时间:2012-09-06 09:32:15

标签: json jackson

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

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

上面的注释是否有任何替代方法。

如果是,请提供尽可能做同样的例子。

2 个答案:

答案 0 :(得分:1)

其他几种选择:

  • 使用不需要修改值类的mix-in annotations
  • 覆盖JacksonAnnotationIntrospector并实施您自己的逻辑,以确定何时以及如何使用等效类型信息。

答案 1 :(得分:1)

重写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);
}