2012-01-03 14 views
53

Sto utilizzando la libreria di Jackson.Ignora il campo specifico sulla serializzazione con Jackson

voglio ignorare un campo specifico durante la serializzazione/deserializzazione, così per esempio:

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

    @JsonIgnore 
    public String foobar = "c"; 
} 

Dovrebbe darmi:

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

Ma sto ottenendo:

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

Sto serializzando l'oggetto con questo codice:

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

Il tipo reale del campo sulla mia classe è un'istanza della classe Log4J Logger. Che cosa sto facendo di sbagliato?

risposta

83

Ok, quindi per qualche motivo ho perso this answer.

Il seguente codice funziona come previsto:

@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

sto usando '@ RestController' e questo funziona. –

Problemi correlati