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).