Java 상속 클래스 json 디코딩 관련 질문입니다

조회수 753회

제가 json형태 데이터를 가져와서 정의한 class의 객체에 값을 넣으려고 하는데요 일반적인 간단한 class들은 gson 라이브러리를 이용해서 쉽게 되는데 제가 하고 싶은 부분이 막혀서 잘 되지 않습니다

일단 부모 클래스와 자식 클래스 함께 있는 상속관련한 구조입니다

간단한 코드를 표현하자면

class Parent {
    String type;
    int number;
}

class Child1 extends Parent {
    int height;
    List<Parent> contents;
}

class Child2 extends Parent{
    int width;
}

위의 코드에서 Child1, Child2는 Parent를 상속받아 Parent의 속성들을 다 상속받은 자식 클래스이구요 String type에 따라서 구별시키려고합니다

관건은 Child1 클래스 내의 List contents라는 멤버변수인데 contents안에 어떤 타입의 class가 들어갈지는 모르는 상태입니다

json 파일을 받은 후에 알수 있는 것이구요 contents안에는 Child1, Child2 클래스 타입의 객체가 들어올 수 있습니다 후에 Child3,4,5 도 추가할 가능성도 열려있습니다

일단 부모클래스인 Parent로 객체를 받은 후 type을 체크한 후 Child1 혹은 Child2로 객체를 생성해 contents 안에 넣고 싶습니다

이 과정을 gson을 통해 자동으로 디코딩하게 하는 방법이 있나요? 아니면 하나하나 코드로 구현해서 일일이 json 데이터를 재귀로 들어가면서 type 체크하고 해당하는 class 객체 생성하고 이런식으로밖에 할수 없는건가요?

방법이 있는건데 제가 못찾는건지, 아예 불가능한 구조인건지 모르겠습니다 자바 고수님들의 조언 부탁드립니다...

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)