/* package whatever; // don't place package name! */

public class DataModelDeserializer<T> implements JsonDeserializer<T> {

    @Override
    public T deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
        JsonElement items=null;

        try{
            items = jsonElement.getAsJsonObject();
        }catch (Exception e){
            System.out.println("[ERROR] An error has accused while parsing the response.");
            System.out.println("[ERROR] DataModel: " + jsonElement);
            throw new JsonIOException("Check your profile.");
        }

        return new Gson().fromJson(items, type);
    }
}

public class DataModel {
    private Response response;


    public Response getResponse() {
        return response;
    }

    public void setResponse(Response response) {
        this.response = response;
    }


}

public class Response<T> {
    private int count;
    private List<T> items=new ArrayList<T>();
    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public List<T> getItems() {
        return items;
    }

    public void setItems(List<T> items) {
        this.items = items;
    }
}

public class Items {
    private int id;
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

