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}