2012-01-03 36 views
53

Tôi đang sử dụng thư viện Jackson.Bỏ qua trường cụ thể về tuần tự hóa với Jackson

Tôi muốn bỏ qua một lĩnh vực cụ thể khi serializing/deserializing, vì vậy ví dụ:

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

    @JsonIgnore 
    public String foobar = "c"; 
} 

nên cho tôi:

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

Nhưng tôi nhận được:

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

Tôi đang sắp xếp thứ tự đối tượng với mã này:

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

Loại thực tế của trường trên lớp của tôi là một thể hiện của lớp LoggerJ Logger. Tôi đang làm gì sai?

Trả lời

83

Ok, vì vậy, vì lý do nào đó, tôi đã bỏ lỡ this answer.

Các mã sau đây làm việc như mong đợi:

@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

Tôi đang sử dụng '@ RestController' và các công trình này. –

Các vấn đề liên quan