마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Gson 관련 문의 드립니다.

0 추천

안녕하세요.

json 관련하여 Gson 을 사용하려고 하는데...

기존 구현되어 있는 상태에서 json lib 를 바꿀려고 하는 중인데..

기존 Class 구조를 Gson 을 위해서 모두 바꾸기는 현재로써 불가능 할거 같아서..

우선 일부분만 Gson 을 사용하려고 합니다.

그런데 변경중 한가지 난관에 봉착하게 되었는데...

예를 들어 json data가 header 와 body가 있는상태이고,

header 가 Base Class 이고 body 부분이 Base Class 를 상속받은 Sub Class 인데

class BaseClass {
    public String name = "";
    public String age = "";

    // getter & setter ...
}

class SubClass extent BaseClass {
    public String address = "";
}

class SubClass1 extent BaseClass {
    public String nation = "";
}

class SubClass2 extent BaseClass {
    public String juminNumber = "";
}

..... more

/* jsonData

{
	"header" : {
		"name" : "gson",
		"age" : "10",
	},
	"body" : {
		"address" : "Korea"
	}
}
*/

JSONObject jsonObject = null;
jsonObject = new JSONObject (jsonData);
JSONObject header = (JSONObject) jsonObject.opt( "header" );
JSONObject body = (JSONObject) jsonObject.opt( "body" );

SubClass subClass = new SubClass();

Gson gson = new Gson();

subClass = gson.fromJson( header.toString(), subClass.class);
// subClass 의 body에 해당하는 특정 key 값을 사용하지 않고
// 위 subClass object에 body 의 data address 를 어떻게 넣어야 할까요?

gson을 사용하여 하나의 class data 에 두개의 JSONObject 를 추가할 수 있는 방법이 있을까요??

gson의 목적(?!)과는 다르단걸 알지만, gson을 적용하면서 위와 같은 상황에서의 해결 방법 아시면

답글 부탁드립니다.

 

 

 

까리산적 (350 포인트) 님이 2016년 2월 21일 질문
까리산적님이 2016년 2월 22일 수정

1개의 답변

0 추천
헤더와 바디를 모두 갖고 있는 클래스를 만들고, 그 안에서 헤더/바디를 찾아보세요
쎄미 (162,410 포인트) 님이 2016년 2월 22일 답변
새로운 class를 만들기는 너무 많은 class 를 다시 구성해야 해서 어려울거 같습니다. 위의 예제처럼 현재 구현된 class 상태에서 Gson을 사용하여 body 부분을 추가할수 있는 방법은 없을까요?
...