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

Loại trừ trường khi serialize bằng Gson trong Java

Thư viện Gson cung cấp cách đơn giản để loại trừ trường khỏi serialization bằng modifier transient. Nếu khai báo một trường trong lớp Java là transient, Gson sẽ bỏ qua trường đó cho cả serialization và deserialization.

Ví dụ minh họa

import com.google.gson.*;

public class GsonTransientFieldTest {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        Person p = new Person("Raja", "Ramesh", 28, 35000.00);
        String jsonStr = gson.toJson(p);
        System.out.println(jsonStr);
    }
}

// Lớp Person
class Person {
    private String firstName;
    private transient String lastName;
    private int age;
    private transient double salary;
    
    public Person(String firstName, String lastName, int age, double salary) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.salary = salary;
    }
}

Kết quả đầu ra

{
    "firstName": "Raja",
    "age": 28
}

Cách khác: Ngoài transient, có thể dùng annotation @Expose kết hợp với GsonBuilder().excludeFieldsWithoutExposeAnnotation() để kiểm soát chi tiết hơn (xem bài tiếp theo).