2021년 7월 15일 목요일

ObjectMapper로 형변환이 안되는 문제. (대문자 스네이크 케이스)

 DTO 객체명이 대문자 스네이크 케이스 형태일 경우 ObjectMapper convertValue 메소드로 형변환시 값이 들어가지 않는다.


여기에서 대문자 스네이크 케이스 코드를 받아서 적용했더니 정상적으로 값이 들어간다.


아래와 같이 네이밍 전략을 선언해서 사용한다.

ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(CustomUpperSnakeCaseStrategy.UPPER_SNAKE_CASE);

ObjectMapper로 List Map 타입을 List Dto 타입으로 변환 방법

 

ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> listMap = new ArrayList<>();
...
List<MyDto> testDtoList =
mapper.convertValue(listMap, TypeFactory.defaultInstance().constructCollectionType(List.class, MyDto.class));