BankSystem, 2021년 12월 27일

yshjft·2021년 12월 27일
0

Bank System

목록 보기
1/14

jackson

spring boot에서 object → json, json → object를 변환시 사용되는 라이브러리이다.

No serializer found for class

test code를 작성하던 중에 위와 같은 에러를 보게되었다. 찾아보니 이 문제는 객체를 json으로 변환할 때 발생한다고 한다. serialize 하기 위해 객체 필드의 접근 제한자가 public이거나 객체에서 public getter/setter를 제공해야하는데 이러한 조건이 지켜지지 않아 문제가 발생하는 것이다.

@Getter
@NoArgsConstructor
public class UserSaveRequestDto {
    @NotBlank
    @Length(max=30)
    private String name;
    
    ...
}

하지만 lombok @Getter로 분명히 getter 작성하였는데 왜 이런 문제가 발생하는지 이유를 모르겠다....

해결 방법

해결 방법은 쉽게 찾을 수 있었다. 아래와 같이 private 같은거 상관없이 ObjectMapper 차원에서 모든 필드를 감지할 수 있도록 해주면 된다.

objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
profile
꾸준히 나아가자 🐢

0개의 댓글