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}


