Retrofit 2 如何从嵌套的 json 对象 (android) 获取响应

Retrofit 2 how to get the response from nested json objects (android)

这是我的第一个 json 回复,我得到了令牌

{
"token": "I0ZmEifQ.CdbGWjkIYnuO29uJokCIGn8kXFbLbVp3gnlsEszagno"
}

pojoclass

public class TokenReceiver {
    private String token; 

    public String getToken() {
        return token;
    }
}

上面的工作正常但是如何得到下面的响应

{
  "user": {
    "id": 1,
    "first_name": "Super",
    "last_name": "Admin",
    "email": "abc@sad.sdf",
    "mobile_no": 2147483647,
    "created_at": "2016-01-21 00:00:00",
    "updated_at": "2016-01-21 00:00:00",
    "user_role_id": 1
  }
}

状态码为 200(正常) 但是数据没有附加到 pojo

public class User {

    @SerializedName("id")
    @Expose
    private int id;

    @SerializedName("first_name")
    @Expose
    private String first_name;

    @SerializedName("last_name")
    @Expose
    private String last_name;

    @SerializedName("email")
    @Expose
    private String email;

    @SerializedName("mobile_no")
    @Expose
    private String mobile_no;

    @SerializedName("created_at")
    @Expose
    private String created_at;

    @SerializedName("updated_at")
    @Expose
    private String updated_at;

    @SerializedName("user_role_id")
    @Expose
    private int user_role_id;
}

提前致谢

Public class classname{

public User user;
 class User{

@SerializedName("id")
@Expose
private int id;

@SerializedName("first_name")
@Expose
private String first_name;

@SerializedName("last_name")
@Expose
private String last_name;

@SerializedName("email")
@Expose
private String email;

@SerializedName("mobile_no")
@Expose
private String mobile_no;

@SerializedName("created_at")
@Expose
private String created_at;

@SerializedName("updated_at")
@Expose
private String updated_at;

@SerializedName("user_role_id")
@Expose
private int user_role_id;
}
}

以上代码适合您

public class Response{
    @SerializedName("user")
    @Expose
    private User user;
  }

public class User{

@SerializedName("id")
@Expose
private int id;

@SerializedName("first_name")
@Expose
private String first_name;

@SerializedName("last_name")
@Expose
private String last_name;

@SerializedName("email")
@Expose
private String email;

@SerializedName("mobile_no")
@Expose
private String mobile_no;

@SerializedName("created_at")
@Expose
private String created_at;

@SerializedName("updated_at")
@Expose
private String updated_at;

@SerializedName("user_role_id")
@Expose
private int user_role_id;
}

Inner Response 可以通过下面提到的方式访问。

response.getUser().getId();