Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để bỏ qua một trường của đối tượng JSON bằng cách sử dụng thư viện Jackson trong Java?


Jackson @JsonIgnore chú thích có thể được sử dụng để bỏ qua một tài sản nhất định hoặc trường của một đối tượng Java. Thuộc tính có thể bị bỏ qua cả khi đọc JSON thành các đối tượng Java và khi viết các đối tượng Java vào JSON. Chúng tôi có thể sử dụng readValue () writeValueAsString () các phương thức của ObjectMapper lớp để đọc một đối tượng JSON sang Java và ghi một đối tượng Java vào 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 + "]";
   }
}

Đầu ra

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]