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

Serialize field null bằng thư viện Gson trong Java

Mặc định, đối tượng Gson không serialize các field có giá trị null sang JSON. Nếu field trong đối tượng Java là null, Gson sẽ loại bỏ nó. Có thể buộc Gson serialize giá trị null thông qua lớp GsonBuilder. Cần gọi phương thức serializeNulls() trên instance GsonBuilder trước khi tạo đối tượng Gson. Sau khi gọi serializeNulls(), instance Gson do GsonBuilder tạo có thể bao gồm field null trong JSON serialized.

Cú pháp

public GsonBuilder serializeNulls()

Ví dụ minh họa

import com.google.gson.*;
import com.google.gson.annotations.*;

public class NullFieldTest {
    public static void main(String args[]) {
        GsonBuilder builder = new GsonBuilder();
        builder.serializeNulls();
        Gson gson = builder.setPrettyPrinting().create();
        Employee emp = new Employee(null, 25, 40000.00);
        String jsonEmp = gson.toJson(emp);
        System.out.println(jsonEmp);
    }
}

// Lớp Employee
class Employee {
    @Since(1.0)
    public String name;
    @Since(1.0)
    public int age;
    @Since(2.0)
    public double salary;
    
    public Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
}

Kết quả đầu ra

{
    "name": null,
    "age": 25,
    "salary": 40000.0
}

Lưu ý: @Since annotation dùng cho versioning (xem bài khác). serializeNulls() áp dụng cho toàn bộ object. Nếu chỉ muốn serialize null cho field cụ thể, cần custom TypeAdapter.