복붙노트

[SPRING] Spring에서 MappingJacksonJsonView가 사용하는 JSON 필드 이름 바꾸기

SPRING

Spring에서 MappingJacksonJsonView가 사용하는 JSON 필드 이름 바꾸기

MappingJacksonJsonView를 사용하여 JSON 클래스에 직렬화하지만, getter 이름을 기반으로하는 기본 이름에서 일부 필드의 이름을 바꿀 수 있기를 바랍니다.

jQuery 파일 업로드를 위해 "delete_url"및 "delete_type"과 같은 필드 이름을 출력해야하기 때문입니다. 직렬화 할 필드를 선택하기 위해 @Jsonserialize 주석을 사용하고 있습니다.

@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Picture {

    @JsonSerialize
    String getName();

    @JsonSerialize
    String getDelete_url();

    ...

예를 들어 getDeleteUrl ()을 호출하고 싶지만 JSON에 직렬화 할 때 여전히 키 "delete_url"을 출력하고 싶을 때 getDelete_url () 메서드를 호출해야합니다.

해결법

  1. ==============================

    1.@JsonProperty를 사용하여 자격을 얻을 수 있어야합니다.

    @JsonProperty를 사용하여 자격을 얻을 수 있어야합니다.

    @JsonAutoDetect(getterVisibility = Visibility.NONE)
    public interface Picture {
    
      @JsonSerialize
      @JsonProperty("name")
      String getName();
    
      @JsonSerialize
      @JsonProperty("delete_url")
      String getDeleteUrl();
    
      //...
    
  2. ==============================

    2.@JsonProperty 주석을 사용해 보셨습니까?

    @JsonProperty 주석을 사용해 보셨습니까?

    "논리적 속성의 이름, 즉 속성에 사용할 Json 객체 필드 이름을 정의합니다. 빈 문자열 (기본값) 인 경우 주석이 달린 필드의 이름을 사용합니다."

  3. from https://stackoverflow.com/questions/7893619/rename-json-fields-used-by-mappingjacksonjsonview-in-spring by cc-by-sa and MIT license