Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะละเว้นฟิลด์ของวัตถุ JSON โดยใช้ไลบรารี Jackson ใน Java ได้อย่างไร


The Jackson @JsonIgnore คำอธิบายประกอบ สามารถใช้เพื่อละเว้น คุณสมบัติบางอย่าง หรือ ฟิลด์ ของวัตถุ Java คุณสมบัตินี้สามารถละเว้นได้ทั้งเมื่ออ่าน JSON ในวัตถุ Java และเมื่อเขียนวัตถุ Java ลงใน JSON เราสามารถใช้ readValue() และ writeValueAsString() วิธีการของ ObjectMapper คลาสเพื่ออ่าน JSON เป็น Java Object และเขียนวัตถุ Java ไปยัง JSON

ไวยากรณ์

@Target(value={ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD})
@Retention(value=RUNTIME)
public @interface JsonIgnore

ตัวอย่าง

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 + "]";
   }
}

ผลลัพธ์

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]