writevalueasstring serialize deserialize java json serialization jackson

java - serialize - Ignorar el campo específico en la serialización con Jackson



objectmapper java (2)

Ok, entonces por alguna razón me perdí esta respuesta .

El siguiente código funciona como se espera:

@JsonIgnoreProperties({"foobar"}) public static class Foo { public String foo = "a"; public String bar = "b"; public String foobar = "c"; } //Test code ObjectMapper mapper = new ObjectMapper(); Foo foo = new Foo(); foo.foobar = "foobar"; foo.foo = "Foo"; String out = mapper.writeValueAsString(foo); Foo f = mapper.readValue(out, Foo.class);

Estoy usando la biblioteca de Jackson.

Quiero ignorar un campo específico al serializar / deserializar, por ejemplo:

public static class Foo { public String foo = "a"; public String bar = "b"; @JsonIgnore public String foobar = "c"; }

Debería darme:

{ foo: "a", bar: "b", }

Pero estoy obteniendo:

{ foo: "a", bar: "b", foobar: "c" }

Estoy serializando el objeto con este código:

ObjectMapper mapper = new ObjectMapper(); String out = mapper.writeValueAsString(new Foo());

El tipo real del campo en mi clase es una instancia de la clase Log4J Logger. ¿Qué estoy haciendo mal?


También vale la pena señalar es esta solución que utiliza DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES: https://.com/a/18850479/1256179