Gson - Hỗ trợ tạo phiên bản

Gson cung cấp @Sincechú thích để kiểm soát việc tuần tự hóa / deserialization Json của một lớp dựa trên các phiên bản khác nhau của nó. Hãy xem xét lớp sau có hỗ trợ lập phiên bản. Trong lớp này, ban đầu chúng tôi đã xác định hai biếnrollNoname và sau đó, chúng tôi đã thêm verifiednhư một biến mới. Sử dụng @Since, chúng tôi đã xác địnhrollNoname kể từ phiên bản 1.0 và được xác minh là phiên bản 1.1.

class Student { 
   @Since(1.0) 
   private int rollNo; 
   
   @Since(1.0) 
   private String name; 
   
   @Since(1.1) 
   private boolean verified;  
}

GsonBuilder cung cấp setVersion() phương thức để tuần tự hóa lớp được tạo phiên bản đó.

GsonBuilder builder = new GsonBuilder(); 
builder.setVersion(1.0);   
Gson gson = builder.create();

Thí dụ

Hãy xem một ví dụ về hỗ trợ lập phiên bản đang hoạt động. Tạo một tệp lớp Java có tênGsonTester trong C: \> GSON_WORKSPACE.

Tệp - GsonTester.java

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder; 
import com.google.gson.annotations.Since;  

public class GsonTester { 
   public static void main(String args[]) { 
   
      GsonBuilder builder = new GsonBuilder(); 
      builder.setVersion(1.0);   
      Gson gson = builder.create();
      
      Student student = new Student(); 
      student.setRollNo(1); 
      student.setName("Mahesh Kumar"); 
      student.setVerified(true);  
      
      String jsonString = gson.toJson(student); 
      System.out.println(jsonString);  
      
      gson = new Gson();     
      jsonString = gson.toJson(student); 
      System.out.println(jsonString); 
   }      
} 

class Student { 
   @Since(1.0) 
   private int rollNo; 
   
   @Since(1.0) 
   private String name; 
   
   @Since(1.1) 
   private boolean verified;   
   
   public int getRollNo() { 
      return rollNo; 
   }  
   
   public void setRollNo(int rollNo) { 
      this.rollNo = rollNo; 
   } 
   
   public String getName() { 
      return name; 
   } 
   
   public void setName(String name) { 
      this.name = name; 
   }
   
   public void setVerified(boolean verified) { 
      this.verified = verified; 
   }  
   
   public boolean isVerified() { 
      return verified; 
   } 
}

Xác minh kết quả

Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau -

C:\GSON_WORKSPACE>javac GsonTester.java

Bây giờ hãy chạy GsonTester để xem kết quả -

C:\GSON_WORKSPACE>java GsonTester

Xác minh kết quả đầu ra.

{"rollNo":1,"name":"Mahesh Kumar"} 
{"rollNo":1,"name":"Mahesh Kumar","verified":true}