如何在 Java 中使用 Gson 庫使用 @Until 註解?
@Until 註解 可與 GsonBuilder 類的 setVersion() 方法一起使用。此註解可應用於 Java 類的欄位,並接受浮點數作為引數。此引數表示已序列化的欄位的版本號。@Until 註解可管理網路服務中 JSON 類的版本控制。
語法
@Documented
@Retention(value=RUNTIME)
@Target(value={FIELD,TYPE})
public @interface Until示例
import com.google.gson.annotations.Until;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonUntilAnnotationTest {
public static void main(String[] args) {
Employee emp = new Employee();
emp.setEmployeeName("Adithya");
emp.setEmployeeId(115);
emp.setEmployeeTechnology("Python");
emp.setEmploeeAddress("Pune");
System.out.println("Using version 0.5");
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.setPrettyPrinting().setVersion(0.5).create();
String jsonString = gson.toJson(emp);
System.out.println(jsonString);
System.out.println("Using version 1.0");
gsonBuilder = new GsonBuilder();
gson = gsonBuilder.setPrettyPrinting().setVersion(1.0).create();
jsonString = gson.toJson(emp);
System.out.println(jsonString);
System.out.println("Using version 1.1");
gsonBuilder = new GsonBuilder();
gson = gsonBuilder.setPrettyPrinting().setVersion(1.1).create();
jsonString = gson.toJson(emp);
System.out.println(jsonString);
}
}
// Employee class
class Employee {
private String empName;
private int empId;
@Until(1.1)
private String empTech;
@Until(1.1)
private String empAddress;
public String getEmployeeName() {
return empName;
}
public void setEmployeeName(String empName) {
this.empName = empName;
}
public int getEmployeeId() {
return empId;
}
public void setEmployeeId(int empId) {
this.empId = empId;
}
public String getEmployeeTechnology() {
return empTech;
}
public void setEmployeeTechnology(String empTech) {
this.empTech = empTech;
}
public String getEmploeeAddress() {
return empAddress;
}
public void setEmploeeAddress(String empAddress) {
this.empAddress = empAddress;
}
}輸出
Using version 0.5
{
"empName": "Adithya",
"empId": 115,
"empTech": "Python",
"empAddress": "Pune"
}
Using version 1.0
{
"empName": "Adithya",
"empId": 115,
"empTech": "Python",
"empAddress": "Pune"
}
Using version 1.1
{
"empName": "Adithya",
"empId": 115
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP