나는 모든 기본 요청과 동일한 기본 컨테이너를 몇 가지 기본 정보와 함께 반환하는 webservice를 가지고 있습니다.GSON을 사용하여 특정 객체를 사용하여 일반 컨테이너를 비 직렬화
{
"error":false,
"message":"Message goes here",
"items":[
{
"id":1,
"name":"Test User 1"
},
{
"id":2,
"name":"Test User 2"
}
]
}
다른 자원을 요청하는 항목의 목록이 달라집니다 : 내 클라이언트에서
{
"error":false,
"message":"Message goes here",
"items":[
{
"id":3,
"artist":"Artist 1",
"year":2001
},
{
"id":4,
"artist":"Artist 2",
"year":1980
}
]
}
를 내가 매핑 할 예를 들어, 사용자의 목록을 요청하는 나에게 다음과 같은 응답을 줄 것이다 GSON를 사용하여 자바 객체에 대한 응답 :
public class ArtistRestResponse {
private boolean error;
private String message = "";
private Artist[] items;
}
그러나, 일반 필드를 리팩토링 각 자원에 대한 클래스를 만드는에서 저를 유지하기 위해, 만들 수있는 논리적 인 단계가 될 것입니다 일반적으로 입력 RestResponse<T>
클래스 :
public class RestResponse<T> {
private boolean error;
private String message = "";
private T[] items;
}
문제는 RestResponse<Artist> = new Gson().fromJson(json, RestResponse<Artist>.class);
를 사용하는 것은 불가능하다는 것이다. 그런 구조를 사용하는 방법이 있습니까? 아니면 서버 응답을 처리하는 더 좋은 방법이 있습니까?