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

Java에서 Gson을 사용하여 사용자 정의 FieldNamingStrategy를 구현하는 방법은 무엇입니까?


FieldNaming 전략 Gson에서 사용자 정의 필드 이름을 제공하기 위한 메커니즘입니다. 이를 통해 클라이언트 코드는 필드 이름을 일반 Java 필드 선언 규칙으로 지원되지 않는 특정 규칙으로 변환할 수 있습니다. translateName() 메소드는 모든 필드 이름 앞에 "pre_ 문자열을 붙입니다. ".

아래 예에서는 Custom FieldNamingStrategy를 구현할 수 있습니다.

예시

import java.lang.reflect.Field;
import com.google.gson.*;
public class GsonFieldNamingStrategyTest {
   public static void main(String[] args) {
      Employee emp = new Employee();
      emp.setEmpId(115);
      emp.setFirstName("Adithya");
      emp.setLastName("Jai");
      CustomFieldNamingStrategy customFieldNamingStrategy = new CustomFieldNamingStrategy();
      GsonBuilder gsonBuilder = new GsonBuilder();
      Gson gson = gsonBuilder.setFieldNamingStrategy(customFieldNamingStrategy).create();
      String result = gson.toJson(emp);
      System.out.println(result);
   }
   // Custom FieldNamingStrategy
   private static class CustomFieldNamingStrategy implements FieldNamingStrategy {
      @Override
      public String translateName(Field field) {
         return "pre_" + field.getName();
      }
   }
}
// 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;
   }
}

출력

{"pre_empId":115,"pre_firstName":"Adithya","pre_lastName":"Jai"}