我有以下型号: 我正在尝试使用 GSon 解析来自服务器的响应,代码如下:
public class UserDetails
{
private final int ID;
private final String user_email;
public UserDetails(int ID, String user_email)
{
this.ID = ID;
this.user_email = user_email;
}
public int getID()
{
return ID;
}
public String getUser_email()
{
return user_email;
}
}
public void onResponse(Call call, Response response) throws IOException {
String mMessage = response.body().string();
if (response.isSuccessful()) {
try {
Gson gson = new Gson();
UserDetails user_details = gson.fromJson(mMessage, UserDetails.class);
Log.d("Success","The response from the server" + " " + user_details.getID()
+ " " + user_details.getUser_email().toString());
Log.d("Success", " "+mMessage);
}
}
}
但是,当我放置断点来获取用户详细信息时,值始终显示为空。
最佳答案
您有一个非默认构造函数,并且您似乎没有一个无参数(默认)构造函数,如docs所示:
请在您的 pojo 中添加一个:
public UserDetails()
{
}
如果您想确保您的 POJO 结构良好,请使用此 site 。它将根据您的 json 结构生成 pojo。
大致应该是这样的:
public class UserDetail {
@SerializedName("ID")
@Expose
private Integer iD;
@SerializedName("user_email")
@Expose
private String userEmail;
public Integer getID() {
return iD;
}
public void setID(Integer iD) {
this.iD = iD;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
}
关于java - 使用Gson解析JSonObject来建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49906432/