@JsonValue
Enum 변수를 Json으로 변환하였을 때 enum의 value(=viewName) 값이 아닌 name이 출력되는 현상이 나타났다.
@JsonValue는 전체 인스턴스를 직렬화할 때 사용하는 단일 메서드를 나타낸다.
예를 들어, enum에서 getViewName 메서드에 @JsonValue를 넣어주어 이름을 통해 직렬화하게 한다.
public enum Category {
RESTAURANT("음식점"),
CAFE("카페"),
BAKERY("베이커리"),
PUB("주점"),
BAR("바"),
ETC("기타");
private String viewName;
@JsonValue
public String getViewName() {
return viewName;
}
...
}
Dto에 getViewName을 호출하여 직렬화된 값을 반환해 주면 된다.
public class GetStoreDto {
...
@ApiModelProperty(notes = "가게 카테고리", example = "음식점", required = true)
private String category;
...
@Builder
public GetStoreDto(Long id, String address, String name, Category category, String description, float grade, double latitude, double longitude) {
...
this.category = category.getViewName();
...
}
...
}
https://jjam89.tistory.com/241
'💻 프로젝트 > 🍝 홍잇' 카테고리의 다른 글
[HongEat] 리팩토링 - Enum/ParameterBinding(Converter) (0) | 2023.10.03 |
---|---|
[HongEat] 리팩토링 - Enum/toEntity(@JsonCreator, @EnumValid) (0) | 2023.04.22 |
[HongEat] 리팩토링 - 변경사항 (0) | 2023.04.22 |
[HongEat] 리팩토링, 어떻게 진행했는가 (0) | 2023.04.22 |