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}