본문 바로가기
놀기/잡스러운 것

JSON으로 VO (DTO) 복사하기 (초보자 전용)

by Hi~ 2021. 8. 7.

VO와 DTO에 대한 논쟁이 많고 사용 용도를 구분하는 것도 큰 의미 없고 하니 명칭은 그냥 VO로 하고 넘어간다.

 

Spring Boot로 작업하다 보면 JSON을 받아 VO로 만들고 다시 VO를 JSON으로 만들어 넘기고 VO의 일부분만 골라 다른 VO로 만들고 등등등 작업이 많다. Java/Spring Boot가 주종목이 아니라 그때그때 검색해서 사용하는 상황이라 그냥 초보자 관점에서 기록을 남긴다.

 

getDDD(), gson, class 파일 분리 등 대략적으로 작성하긴 했으나, 아래의 두 코드는 동일한 결과를 준다. 물론, 수행 속도나 변수 이름을 다르게 해야 하는 등의 조건이 있다면 무조건 한 가지 방법을 사용해야겠지만, 아니라면 둘 중 편한 방법을 사용하면 된다.

 

@Data
public class DDD {
    String a;
    String b;
    String c;
}

@Data
public class III {
    String a;
    String b;
    String d;
}

DDD d = getDDD();
III i = new III();

i.setA(d.getA());
i.setB(d.getB());
@Data
public class DDD {
    String a;
    String b;
    String c;
}

@Data
public class III {
    String a;
    String b;
    String d;
}

DDD d = getDDD();
III i = gson.fromJson(gson.toJson(d), III.class);

 

틀린 부분이 있으면 알려주세요. 주종목이 아니라서 그냥 구글에서 복사해다가 붙여 넣는 방식으로 코딩해서요. ㅎㅎㅎ

댓글