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