与jackson忽略序列化的具体领域

我正在使用jackson图书馆。

序列化/反序列化时,我想忽略一个特定的字段,例如:

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

应该给我:

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

但是我得到:

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

我用这个代码序列化对象:

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

我class上的字段的真实types是Log4J Logger类的一个实例。 我究竟做错了什么?

好吧,出于某种原因,我错过了这个答案 。

以下代码按预期工作:

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

另外值得注意的是这个解决scheme使用DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES: https : //stackoverflow.com/a/18850479/1256179