Table of Contents
Java – Map to Dto
라이브러리를 이용해 간단히 맵타입의 데이타를 Dto 로 변한할 수 있다.
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
Map to Dto
Map<String, Object> map = new HashMap<>();
map.put("productName", "productName");
map.put("price", "10000");
ProductDto dto1 = mapper.convertValue(map, ProductDto.class);
System.out.println(dto1.getProductName());
json to Dto
String jsonString = """
{
"productName": "productName",
"price": 10000
}
""";
ProductDto dto2 = mapper.readValue(jsonString, ProductDto.class);
System.out.println(dto2.getProductName());
List
List<Map> mapList = new ArrayList<>();
mapList.add(map);
// List<Map> to List<Dto>
List<ProductDto> dtoList = mapper.convertValue(mapList, mapper.getTypeFactory().constructCollectionType(List.class, ProductDto.class));
System.out.println(dtoList.get(0).getProductName());
convertValue, readValue
객체에서 변환할 때는 convertValue 를 사용하고, json 문자열에서 변환할 때는 readValue 를 사용한다.