JsonView chú thích có thể được sử dụng để bao gồm / loại trừ một thuộc tính trong quá trình tuần tự hóa và giải mã hóa động. Chúng tôi cần định cấu hình ObjectMapper lớp để bao gồm kiểu xem được sử dụng để viết JSON từ đối tượng Java bằng cách sử dụng writerWithView () phương pháp.
Cú pháp
@Target(value={ANNOTATION_TYPE,METHOD,FIELD}) @Retention(value=RUNTIME) public @interface JsonView
Ví dụ
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonView; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonViewAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); String jsonString = objectMapper.writerWithView(Views.Public.class).writeValueAsString(new Person()); String jsonStringInternal = objectMapper.writerWithView(Views.Internal.class).writeValueAsString(new Person()); System.out.println(jsonString); System.out.println(jsonStringInternal); } } // Person class class Person { @JsonView(Views.Public.class) public long personId = 115; @JsonView(Views.Public.class) public String personName = "Raja Ramesh"; @JsonView(Views.Internal.class) public String gender = "male"; @Override public String toString() { return "Person{" + "personId=" + personId + ", personName='" + personName + '\'' + ", gender='" + gender + '\'' + '}'; } } class Views { static class Public {} static class Internal extends Public {} }
Đầu ra
{"personId":115,"personName":"Raja Ramesh"} {"personId":115,"personName":"Raja Ramesh","gender":"male"}