Gson 版本支持

gson 版本支持

gson提供 @since 注释来控制基于其各种版本的类的 json 序列化/反序列化。考虑以下具有版本控制支持的类。在这个类中,我们最初定义了两个变量 rollno 和 name 以及稍后,我们添加了 验证 为新变量。使用 @since,我们已经定义了版本1.0的 rollno 和 name ,并验证了版本1.1。

class student {
   @since(1.0)
   private int rollno;

   @since(1.0)
   private string name;

   @since(1.1)
   private boolean verified;  
}

gsonbuilder提供了 setversion() 方法来序列化这样的版本化类。

gsonbuilder builder = new gsonbuilder();
builder.setversion(1.0);   
gson gson = builder.create();

 

1. 范例

让我们看一下版本支持的实例。在c:> gson_workspace中创建名为 gsontester 的java类文件。

文件: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;
   }
}

 

2. 验证结果

使用 javac 编译器编译类如下:

c:\gson_workspace>javac gsontester.java

现在运行gsontester查看结果:

c:\gson_workspace>java gsontester

验证输出。

{"rollno":1,"name":"mahesh kumar"}
{"rollno":1,"name":"mahesh kumar","verified":true}

下一节:gson 从序列化中排除字段

gson 教程

相关文章