2016-02-10 1 views
2

Как я могу разобрать этот ответ, не создавая отдельный класс ответа для каждого объекта.Retrofit parse JSON response от API, когда модель находится в объекте «данные»

{ 
    "data": { 
    "id": 100, 
    "first_name": "Michael", 
    "last_name": "Blankenship" 
    } 
} 

Я хотел бы иметь общий класс, который может ссылаться на объект данных, а затем просто указать, какой тип класса, который следует использовать для разбора ответ

Что-то вроде этого:

@Get 
Call<User> getUser(); 

@Get 
Call<Status> getStatus(); 

без необходимости иметь несколько классов отклика для каждого типа

public class UserResponse { 
    User data; 
} 

public class User { 
    String first_name; 
    String last_name; 
} 

public class StatusResponse { 
    Status data; 
} 
+0

На самом деле, это проблема с структурой JSON. Я также столкнулся с подобной проблемой, и жесткое исправление и правильное исправление заключалось бы в том, чтобы попросить команду сервера удалить ключ данных. –

ответ

0

Обходной путь для этого создаст общий класс примерно так:

public class BaseResponseWrapper <T> { 

    @SerializedName("data") 
    private T data; 

    public BaseResponseWrapper(){ 
     super(); 
    } 

    public T getData() { 
     return data; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^