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

Cấu hình Gson hỗ trợ versioning trong Java

Thư viện Gson cung cấp hệ thống versioning đơn giản cho đối tượng Java mà nó đọc/ghi, và cung cấp annotation @Since cho khái niệm versioning @Since(version_number).

Có thể tạo instance Gson có versioning dùng phương thức GsonBuilder().setVersion(). Nếu set setVersion(2.0), nghĩa là tất cả field có version 2.0 hoặc thấp hơn sẽ được parse/serialize.

Cú pháp

public GsonBuilder setVersion(double ignoreVersionsAfter)

Ví dụ minh họa

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

public class VersionSupportTest {
    public static void main(String[] args) {
        Person person = new Person();
        person.firstName = "Raja";
        person.lastName = "Ramesh";
        
        Gson gson1 = new GsonBuilder().setVersion(1.0).setPrettyPrinting().create();
        System.out.println("Version 1.0:");
        System.out.println(gson1.toJson(person));
        
        Gson gson2 = new GsonBuilder().setVersion(2.0).setPrettyPrinting().create();
        System.out.println("Version 2.0:");
        System.out.println(gson2.toJson(person));
    }
}

// Lớp Person
class Person {
    @Since(1.0)
    public String firstName;
    
    @Since(2.0)
    public String lastName;
}

Kết quả đầu ra

Version 1.0:
{
    "firstName": "Raja"
}
Version 2.0:
{
    "firstName": "Raja",
    "lastName": "Ramesh"
}

Ứng dụng: Hữu ích cho API versioning - field mới thêm gán version cao hơn, client cũ (version thấp) sẽ không thấy field mới. Cũng áp dụng cho deserialize (bỏ qua field version cao hơn).