Gson 版本支持

gson 版本支持

gson提供 @since 注釋來控制基于其各種版本的類的 json 序列化/反序列化。考慮以下具有版本控制支持的類。在這個(gè)類中,我們最初定義了兩個(gè)變量 rollno 和 name 以及稍后,我們添加了 驗(yàn)證 為新變量。使用 @since,我們已經(jīng)定義了版本1.0的 rollno 和 name ,并驗(yàn)證了版本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. 范例

讓我們看一下版本支持的實(shí)例。在c:> gson_workspace中創(chuàng)建名為 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. 驗(yàn)證結(jié)果

使用 javac 編譯器編譯類如下:

c:\gson_workspace>javac gsontester.java

現(xiàn)在運(yùn)行g(shù)sontester查看結(jié)果:

c:\gson_workspace>java gsontester

驗(yàn)證輸出。

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

下一節(jié):gson 從序列化中排除字段

gson 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频