Annotation @JsonIgnore của Jackson dùng để bỏ qua một property hoặc field của object Java. Property bị bỏ qua cả khi đọc JSON vào object Java và khi ghi object Java thành JSON. Dùng readValue() và writeValueAsString() của ObjectMapper để đọc/ghi JSON.
Cú pháp
@Target(value={ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD}) @Retention(value=RUNTIME) public @interface JsonIgnore
Ví dụ
import java.io.*; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; public class JsonIgnoreTest { public static void main(String[] args) throws IOException { Customer customer = new Customer("110", "Surya Kiran", "Chennai"); System.out.println(customer); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(customer); System.out.println("JSON: " + jsonString); System.out.println("---------"); jsonString = "{\"id\":\"120\",\"name\":\"Devaraj\", \"address\":\"Banglore\"}"; System.out.println("JSON: " + jsonString); customer = mapper.readValue(jsonString, Customer.class); System.out.println(customer); } } // Customer class class Customer { private String id; private String name; @JsonIgnore private String address; public Customer() { } public Customer(String id, String name, String address) { this.id = id; this.name = name; this.address = address; } public String getId() { return id; } public String getName() { return name; } public String getAddress() { return address; } @Override public String toString() { return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]"; } }
Kết quả
Customer [id=110, name=Surya Kiran, address=Chennai] JSON: {"id":"110","name":"Surya Kiran"} --------- JSON: {"id":"120","name":"Devaraj", "address":"Banglore"} Customer [id=120, name=Devaraj, address=null]