Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để triển khai FieldNamingStrategy tùy chỉnh bằng Gson trong Java?


FieldNamingStrategy là một cơ chế cung cấp cách đặt tên trường tùy chỉnh trong Gson. Điều này cho phép mã máy khách dịch tên trường thành một quy ước cụ thể không được hỗ trợ như một quy tắc khai báo trường Java thông thường. translateName () phương thức sẽ đặt tiền tố cho mọi tên trường bằng chuỗi “ pre_ ”.

Trong ví dụ dưới đây, chúng ta có thể triển khai Custom FieldNamingStrategy.

Ví dụ

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

Đầu ra

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