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

วิธีเพิกเฉยต่อฟิลด์ของ JSON Object ด้วยไลบรารี Jackson ใน Java

Annotation @JsonIgnore ของ Jackson ใช้สำหรับ เพิกเฉยต่อ คุณสมบัติ (property) หรือ ฟิลด์ (field) บางอย่างของอ็อบเจกต์ Java คุณสมบัตินั้นจะถูกเพิกเฉยทั้งตอนอ่าน JSON เข้าสู่อ็อบเจกต์ Java และตอนเขียนอ็อบเจกต์ Java เป็น JSON เราสามารถใช้เมธอด readValue() และ writeValueAsString() ของคลาส ObjectMapper เพื่ออ่าน JSON เป็น Java Object และเขียน Java object เป็น 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 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]