Retrofit JSON GET-запрос возвращает пустое значение для вложенного поля. Как я могу получить доступ к данным поля UserID? Что я делаю неправильно ? Я не знаю, как разобрать json с помощью модернизации. Я знаком с разбором простых json с использованием Retrofit, но не знаком с разбором вложенных Json с использованием Retrofit.
JSON Data:
{
"Status": "Success",
"ErrorMessage": null,
"ErrorKey": null,
"RedirectUrl": null,
"Data": {
"UserDetails": {
"UserID": "d7a6397c-fa33-4268-a64a-b99d0e78dfcf"
}
}
}
Интерфейс GetData:
@GET("Account/LoginAPi")
Call<LoginResponse> getUser(@Query("UserName") String username,
@Query("Password") String password);
POJO:
public class LoginResponse {
@SerializedName("UserName")
String UserName;
@SerializedName("Password")
String Password;
@SerializedName("UserID")
String UserID;
@SerializedName("Status")
String Status;
public LoginResponse(String UserName, String Password, String UserID, String Status)
{
this.UserName = UserName;
this.Password = Password;
this.UserID = UserID;
this.Status = Status;
}
public String getPassword() {
return Password;
}
public void setPassword(String Password){
this.Password = Password;
}
public String getUserName() {
return UserName;
}
public void setUserName(String UserName){
this.UserName = UserName;
}
public String getUserID() {
return UserID;
}
public void setUserID(String UserID) {
this.UserID = UserID;
}
public String getStatus() {
return Status;
}
public void setStatus(String Status) {
this.Status = Status;
}
}
MainActivity:
GetData service = RetrofitClient.getRetrofitInstance().create(GetData.class);
Call<LoginResponse> call = service.getUser(username, password);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
pDialog.dismiss();
try {
String userid = response.body().getUserID();
toast(userid);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
}
});