2012-01-03 59 views
53

我正在使用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()); 

我班上的字段的实际类型是Log4J Logger类的一个实例。我究竟做错了什么?

回答

83

好吧,所以由于某种原因,我错过了this answer

下面的代码按预期工作:

@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

我使用'@ RestController'和工作原理。 – 2016-09-07 17:41:20

相关问题