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

Java에서 JSON 필드 이름에 대한 명명 규칙을 정의하는 방법은 무엇입니까?

<시간/>

FieldNaming 정책 JSON 필드 이름에 대한 몇 가지 표준 명명 규칙을 정의하는 데 사용할 수 있으며 GsonBuilder 와 함께 사용할 수 있습니다. Gson 구성 인스턴스 Java 필드 이름을 원하는 JSON 필드 이름으로 올바르게 변환합니다. setFieldNamingPolicy() 를 사용할 수 있습니다. GsonBuilder 메소드 직렬화 동안 개체의 필드에 대한 특정 명명 정책 전략을 구성하기 위해 및 역직렬화 .

Gson은 다음과 같은 필드 이름 지정 정책을 통해 다양한 필드 이름 지정 요구 사항을 지원합니다.

  • FieldNamingPolicy.IDENTITY :객체를 직렬화할 때 자바 모델과 똑같은 이름을 사용합니다.
  • FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES :Java 필드 이름을 카멜 케이스 형식에서 각 단어가 밑줄(_)로 구분되는 소문자 필드 이름으로 수정합니다.
  • FieldNamingPolicy.LOWER_CASE_WITH_DASHES: Java 필드 이름을 낙타 형식에서 대시(-)로 구분된 소문자 필드 이름으로 수정합니다.
  • FieldNamingPolicy.UPPER_CAMEL_CASE :JSON 형식으로 직렬화할 때 Java 필드 이름의 첫 번째 "문자"가 대문자인지 확인합니다.
  • FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES :JSON 형식으로 직렬화할 때 Java 필드 이름의 첫 번째 "문자"가 대문자인지 확인하고 단어는 공백으로 구분됩니다.

예시

import com.google.gson.*;
import java.sql.Date;
import java.time.LocalDate;
public class FieldNamingPolicyTest {
   public static void main(String[] args) {
      Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM- dd") .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();
      Person p = new Person("Raja", "Ramesh", 30, Date.valueOf(LocalDate.of(1988, 1, 1)));
      String jsonStr = gson.toJson(p);
      System.out.println(jsonStr);
   }
}
// Person class
class Person {
   private String fistName;
   private String lastName;
   private int _age;
   private Date dateOfBirth;
   public Person(String fistName, String lastName, int _age, Date dateOfBirth) {
      super();
      this.fistName = fistName;
      this.lastName = lastName;
      this._age = _age;
      this.dateOfBirth = dateOfBirth;
   }
}

출력

{
 "fist-name": "Raja",
   "last-name": "Ramesh",
   "_age": 30,
   "date-of-birth": "1988-01-01"
}