Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Gson 라이브러리를 사용하여 @Until 주석을 사용하는 방법은 무엇입니까?


@Until 주석 setVersion()과 함께 사용할 수 있습니다. GsonBuilder 메소드 수업. 이 주석은 Java 클래스의 필드에 적용할 수 있으며 부동 소수점을 인수로 허용합니다. 이 인수는 버전 번호를 나타냅니다. 필드가 직렬화되었습니다. @주석까지 웹 서비스에서 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
}