How to rename the properties of JSON using Gson in Java?

JavaJSONObject Oriented ProgrammingProgramming

The Gson @SerializedName annotation can be serialized to a JSON with the provided name value as its field name. This annotation can override any FieldNamingPolicy including the default field naming policy that may have been set on the Gson instance. A different naming policy can set using the GsonBuilder class.

Syntax

@Retention(value=RUNTIME)
@Target(value={FIELD,METHOD})
public @interface SerializedName

Example

import com.google.gson.annotations.*;
import com.google.gson.*;
public class SerializedNameAnnotationTest {
   public static void main(String args[]) {
      Employee emp = new Employee("Rahul", "Dev", 30, "Nagpur");
      Gson gson = new GsonBuilder().setPrettyPrinting().create(); // pretty print
      String jsonStr = gson.toJson(emp);
      System.out.println(jsonStr);
   }
}
// Employee class
class Employee {
   @SerializedName("first_name")
   private String firstName;
   @SerializedName("last_name")
   private String lastName;
   private int age;
   private String address;
   public Employee() {
   }
   public Employee(String firstName, String lastName, int age, String address) {
      super();
      this.firstName = firstName;
      this.lastName = lastName;
      this.age = age;
      this.address = address;
   }
   public String getFirstName() {
      return firstName;
   }
   public String getLastName() {
      return lastName;
   }
   public int getAge() {
      return age;
   }
   public String getAddress() {
      return address;
   }
}

Output

{
 "first_name": "Rahul",
 "last_name": "Dev",
 "age": 30,
 "address": "Nagpur"
}
raja
Published on 16-Oct-2019 17:31:48
Advertisements