Gson - Prise en charge du contrôle de version

Gson fournit @Sinceannotation pour contrôler la sérialisation / désérialisation Json d'une classe en fonction de ses différentes versions. Considérez la classe suivante avec la prise en charge de la gestion des versions. Dans cette classe, nous avons initialement défini deux variablesrollNo et name et plus tard, nous avons ajouté verifiedcomme nouvelle variable. En utilisant @Since, nous avons définirollNo et name à partir de la version 1.0 et vérifié comme étant de la version 1.1.

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

GsonBuilder fournit le setVersion() méthode pour sérialiser une telle classe versionnée.

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

Exemple

Voyons un exemple de prise en charge du contrôle de version en action. Créez un fichier de classe Java nomméGsonTester dans C: \> GSON_WORKSPACE.

Fichier - 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; 
   } 
}

Vérifier le résultat

Compilez les classes en utilisant javac compilateur comme suit -

C:\GSON_WORKSPACE>javac GsonTester.java

Exécutez maintenant le GsonTester pour voir le résultat -

C:\GSON_WORKSPACE>java GsonTester

Vérifiez la sortie.

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