Java Object를 Map 으로 컨버팅 하기 위해 사용하는 방법중 com.fasterxml.jackson.databind.ObjectMapper 클래스를 활용할 수 있다.
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> dataMap = objectMapper.convertValue(dataClass, Map.class);
다만 이런 경우 자바의 Lint에 의해 경고가 발생할 수 있다. 이는 Map 클래스가 제너릭이기 때문에 그에 대한 정의를 제대로 하지 않았기 때문에 문제가 발생할 가능성이 있기 때문에 경고하는 것이다.
이때는 정확한 Map 클래스에 대한 정의를 알려 주어야 한다. 이때는 TypeReference 클래스를 사용하면 된다.
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> dataMap = objectMapper.convertValue(pushEslDto, new TypeReference<>() {});
new TypeReference<Map<String, Object>> 를 사용해 클래스 인스턴스를 생성하면 되는데 이때 인스턴스 생성시 유추 가능할 경우 new TypeReference<>(){} 로 생략 가능하다.
'개발자의 정보 > Java & framework' 카테고리의 다른 글
Spring batch with multiple db (0) | 2023.03.24 |
---|---|
java LocalDateTime OffsetDateTime 의 호환 (0) | 2023.03.13 |
spring @Conditional 사용하기 (0) | 2023.03.12 |
spring6 3가지 rest-client 사용하기 (0) | 2023.03.11 |
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter (0) | 2023.03.01 |
spring rest 서비스중 error 응답에서 trace 제거하기 (0) | 2023.02.28 |
spring-framework 에서 error 응답 json 으로보내기 (0) | 2023.02.28 |
Outlook 회의실 API 연동하기 (java example) (0) | 2023.02.08 |
댓글