Object Mapper를 검색해보면 Java 객체를 Json으로 바꾸거나 반대의 경우에 사용하는 것으로 많이 나옵니다. 그러나, 자바 객체끼리 변경할 때도 유용하게 사용할 수 있었습니다.
아래와 같이 사용하였는데요, DB에서
"[{"columnNm":"Date_","checked":true,"required":true}]"과 같은 String 형식의 데이터를 columnNm, cecked, required 변수를 갖고 있는 VO 객체로 형 변환을 해줌과 동시에, 각 변수의 값도 입력을 받을 수 있었습니다.
public UploadViewVO getKeyInfo(UploadViewParam uploadViewParam) throws Exception{
UploadViewVO selectUploadKey = viewMapper.selectUploadKey(uploadViewParam);
String uploadStdrListStr = selectUploadKey.getUploadStdr();
String checkedUploadStdr = selectUploadKey.getCheckedUploadStdr();
List<UploadStdr> uploadStdrTemp = mapper.readValue(uploadStdrListStr, new TypeReference<List<UploadStdr>>(){
});
List<String> checkedUploadStdrList = mapper.readValue(checkedUploadStdr, new TypeReference<List<String>>(){
});
for (UploadStdr uploadStdr : uploadStdrTemp) {
for (String checked : checkedUploadStdrList) {
uploadStdr.setChecked(false);
if (checked.equals(uploadStdr.getColumnNm())) {
uploadStdr.setChecked(true);
break;
}
}
}
selectUploadKey.setUploadStdrList(uploadStdrTemp);
return selectUploadKey;
}