Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách bỏ qua trường của đối tượng JSON sử dụng thư viện Jackson trong Java


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]