How to use @Until annotation using the Gson library in Java?



The @Until annotation can use with the setVersion() method of the GsonBuilder class. This annotation can apply to a field in java class and accepts float as an argument. This argument represents the version number in which the field has serialized. The @Until annotation can manage the versioning of JSON classes in web-services.

Syntax

@Documented @Retention(value=RUNTIME) @Target(value={FIELD,TYPE}) public @interface Until

Example

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;    } }

Output

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 }
Updated on: 2020-07-08T12:01:11+05:30

365 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements