FieldNamingPolicy enum using Gson in Java?


Gson library provides the naming conventions as part of enum FieldNamingPolicy. We can set the field naming policy using the setFieldNamingPolicy() method of the GsonBuilder class.

FieldNamingPolicy enum Constants

  • IDENTITY − Using this naming policy, the field name is unchanged.
  • LOWER_CASE_WITH_DASHES − Using this naming policy, modify the Java Field name from its camel-cased form to a lower case field name where each word is separated by a dash (-).
  • LOWER_CASE_WITH_UNDERSCORES − Using this naming policy, modify the Java Field name from its camel-cased form to a lower case field name where each word is separated by an underscore (_).
  • UPPER_CAMEL_CASE − Using this naming policy, ensure that the first “letter” of the Java field name is capitalized when serialized to its JSON form.
  • UPPER_CAMEL_CASE_WITH_SPACES − Using this naming policy, ensure that the first “letter” of the Java field name is capitalized when serialized to its JSON form and the words will be separated by a space.

Syntax

public enum FieldNamingPolicy extends Enum<FieldNamingPolicy> implements FieldNamingStrategy

Example

import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonFieldNamingPolicyTest {
   public static void main(String[] args) {
      Employee emp = new Employee();
      emp.setEmpId(115);
      emp.setFirstName("Raja");
      emp.setLastName("Ramesh");
      GsonBuilder gsonBuilder = new GsonBuilder();
      Gson gson1  =  gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();
      String result1 = gson1.toJson(emp);
      System.out.println("LOWER_CASE_WITH_DASHES: " + result1);
      Gson gson2 =  gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
      String result2 = gson2.toJson(emp);
      System.out.println("LOWER_CASE_WITH_UNDERSCORES: " + result2);
      Gson gson3 = gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
      String result3 = gson3.toJson(emp);
      System.out.println("UPPER_CAMEL_CASE: " + result3);
      Gson gson4 = gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES).create();
      String result4 = gson4.toJson(emp);
      System.out.println("UPPER_CAMEL_CASE_WITH_SPACES: " + result4);
      Gson gson5 = gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY).create();
      String result5 = gson5.toJson(emp);
      System.out.println("IDENTITY: " + result5);
   }
}
// Employee class
class Employee {
   private int empId;
   private String firstName;
   private String lastName;
   public int getEmpId() {
      return empId;
   }
   public void setEmpId(int empId) {
      this.empId = empId;
   }
   public String getFirstName() {
      return firstName;
   }
   public void setFirstName(String firstName) {
      this.firstName = firstName;
   }
   public String getLastName() {
      return lastName;
   }
   public void setLastName(String lastName) {
      this.lastName = lastName;
   }
}

Output

LOWER_CASE_WITH_DASHES: {"emp-id":115,"first-name":"Raja","last-name":"Ramesh"}
LOWER_CASE_WITH_UNDERSCORES: {"emp_id":115,"first_name":"Raja","last_name":"Ramesh"}
UPPER_CAMEL_CASE: {"EmpId":115,"FirstName":"Raja","LastName":"Ramesh"}
UPPER_CAMEL_CASE_WITH_SPACES: {"Emp Id":115,"First Name":"Raja","Last Name":"Ramesh"}
IDENTITY: {"empId":115,"firstName":"Raja","lastName":"Ramesh"}

Updated on: 07-Jul-2020

677 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements