보고 배운 곳 : https://moonong.tistory.com/61
ObjectMapper를 사용하여 변환하는 방법이 있다.
ObjectMapper는 Spring boot에서 bean으로 관리하는 객체이기 때문에
생성자 주입방식으로 주입 받아 사용!
public record TestDto (
String name,
Integer postcode,
String route
) {
public static TestDto of (String name, Integer postcode, String route) {
return new TestDto(name, postcode, route);
}
}
@Slf4j
@Service
@RequiredArgsConstructor
public class TestService {
private final ObjectMapper objectMapper;
public void hashData(String data) {
TestDto origin = TestDto.of("zhyun", 12345, "/board");
// TestDto -> Map
HashMap<String, Object> toMap = objectMapper.convertValue(testDto, HashMap.class);
// Map -> TestDto
TestDto toDto = objectMapper.convertValue(toMap, TestDto.class);
// 값 확인
log.info("👉 is same {} ", Objects.equals(origin, toDto));
toMap.forEach((o, o2) -> log.info("🐢 key :: {} , val :: {}", o, o2));
}
}