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();
这是我的第一个 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();