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

ตั้งค่า Gson ให้รองรับ Versioning ใน Java

ไลบรารี Gson ให้ Versioning System เรียบง่ายสำหรับ Java Objects ที่อ่าน/เขียน มี Annotation @Since สำหรับ Versioning Concept @Since(versionNumber)

สร้าง Gson Instance พร้อม Versioning ด้วย GsonBuilder().setVersion() หากตั้ง setVersion(2.0) หมายถึง Field ที่ Version 2.0 หรือน้อยกว่า จะถูก Parse/Serialize

Syntax

public GsonBuilder setVersion(double ignoreVersionsAfter)

ตัวอย่าง: Versioning Support

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";
        
        // Version 1.0 - เฉพาะ Field @Since(1.0)
        Gson gson1 = new GsonBuilder().setVersion(1.0).setPrettyPrinting().create();
        System.out.println("Version 1.0:");
        System.out.println(gson1.toJson(person));
        
        // Version 2.0 - Field @Since(1.0) และ @Since(2.0)
        Gson gson2 = new GsonBuilder().setVersion(2.0).setPrettyPrinting().create();
        System.out.println("Version 2.0:");
        System.out.println(gson2.toJson(person));
    }
}

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

ผลลัพธ์

Version 1.0:
{ "firstName": "Raja" }

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

Use Case: API Versioning - Client Version เก่าจะได้ Field น้อยกว่า Client Version ใหม่ ไม่ต้องสร้าง DTO แยก Version