您可以注册一个自定义的Jackson注释Intropector,它将忽略来自某种超级类型的所有属性。这是一个例子:
public class JacksonIgnoreInherited { public static class base { public final String field1; public base(final String field1) { this.field1 = field1; } } public static class Bean extends base { public final String field2; public Bean(final String field1, final String field2) { super(field1); this.field2 = field2; } } private static class IgnoreInheritedIntrospector extends JacksonAnnotationIntrospector { @Override public boolean hasIgnoreMarker(final AnnotatedMember m) { return m.getDeclaringClass() == base.class || super.hasIgnoreMarker(m); } } public static void main(String[] args) throws JsonProcessingException { final ObjectMapper mapper = new ObjectMapper(); mapper.setAnnotationIntrospector(new IgnoreInheritedIntrospector()); final Bean bean = new Bean("a", "b"); System.out.println(mapper .writerWithDefaultPrettyPrinter() .writevalueAsString(bean)); }}输出:
{“ field2”:“ b”}



