Hacemos una revisión profunda cada una de las noticias de nuestro sitio web con el objetivo de mostrarte siempre información certera y certera.
Solución:
Puede registrar un intropector de anotación de Jackson personalizado que ignoraría todas las propiedades que provienen de cierto supertipo. Aquí hay un ejemplo:
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
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));
Producción:
“campo2” : “b”
Puede anular los métodos de la superclase que le gustaría evitar que se emitan y anotarlos con @JsonIgnore. La anulación cambia el control de la creación de propiedades a la subclase al tiempo que habilita su capacidad para filtrarla desde la salida.
Por ejemplo:
public class SomeClass
public void setField1(...);
public Integer getField1();
public void setField2(...);
public Integer getField2();
@Override
@JsonIgnore
public String superClassField1(...)
return super.superClassField1();
;
@Override
@JsonIgnore
public String superClassField2(...)
return super.superClassField2();
;
...
También puede usar esto en lugar de anulaciones innecesarias
@JsonIgnoreProperties( "aFieldFromSuperClass")
public class Child extends Base
private String id;
private String name;
private String category;
Si tienes algún reparo y disposición de arreglar nuestro ensayo puedes ejecutar una explicación y con placer lo analizaremos.