java - 使用Gson解析JSonObject来建模

标签 java android gson

我有以下型号: 我正在尝试使用 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/

相关文章:

java - 在 Java 中使用 RxJava2 编写后续 API 请求

android - 将 native fd int 从可打开的 URI 传递到 FFMPEG

android - 获取具有非固定键的对象的属性

integer - Json String包含整型值,反序列化为HashMap,Integer转为double值

java - 大型开源 Java 应用程序/库

performance - 用于高性能、低占用空间的图形查询的库?

java - 从其他一些 Arraylist 的元素填充 Arraylist。

java - 帮助在 Eclipse 中创建重构插件?

java - 使用 java 创建 json/xml 响应 Web 服务的最佳方法是什么

Java GSON JsonSerializer 未将模型的日期类型字段转换为长值