用Gson实现java获取响应
我正试图通过改型+rxjava+gson获得响应
我们的后端由拉威尔开发
问题是gson无法将json转换为我的java类
这是我的课程样本和回答
答复样本:
{
"data": {
"id": 3,
"name": "name",
"last_name": "last name",
"phone_number": "091212345678",
"avatar": null
}
}
java类:
public class User {
private Long id;
private String name;
private String last_name;
private String phone_number;
private String role;
@SerializedName("avatar")
private String profilePicture;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return last_name;
}
public void setLastName(String last_name) {
this.last_name = last_name;
}
public String getPhone_number() {
return phone_number;
}
public void setPhone_number(String phone_number) {
this.phone_number = phone_number;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getProfilePicture() {
return profilePicture;
}
public void setProfilePicture(String profilePicture) {
this.profilePicture = profilePicture;
}
我不知道json响应中的“数据”是什么
以及为什么gson不能将json转换为java
请帮帮我
# 1 楼答案
由于此json响应是嵌套的,您应该通过将用户对象包装在内部来设计如下的类,以正确解析此响应
# 2 楼答案
您有一个名为“data”的JSON对象,用户类不包含用于存储“data”对象内容的数据字段。Gson正在用户类中寻找一个名为“data”的字段,该字段可以保存“data”对象的内容,但没有找到它。现在有两种方法可以做到这一点
以以下格式返回JSON对象:
{
“id”:3,
“名称”:“名称”,
“姓氏”:“姓氏”,
“电话号码”:“091212345678”,
“化身”:空
}
或
2.1创建数据类并在用户类中声明:
2.1。在用户类中声明数据字段
# 3 楼答案
重新设计模型类,如下所示:
现在使用Json属性创建另一个名为Data的类:
现在,您可以访问如下字段: