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