2012-01-03 16 views
53

Estoy usando la biblioteca Jackson.Ignorar el campo específico en la serialización con Jackson

Quiero hacer caso omiso de un campo específico al serializar/deserializar, así por ejemplo:

public static class Foo { 
    public String foo = "a"; 
    public String bar = "b"; 

    @JsonIgnore 
    public String foobar = "c"; 
} 

caso dame:

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

Pero me estoy:

{ 
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?

Respuesta

83

Ok, entonces por alguna razón perdí this answer.

El siguiente código funciona como se esperaba:

@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); 
+0

estoy usando '@ RestController' y esto funciona. –

Cuestiones relacionadas