将Json转换为List Java

时间:2016-09-27 08:08:49

标签: java json gson android

我有一个像这样的JSON数组:

    [
      {"_id": {"$oid":"57e9e4b1f36d281c4b330509"}, "user": "edmtdev" },
      {"_id": {"$oid":"57e9e4cec2ef164375c4c292"}, "user": "admin1234" },
      {"_id": {"$oid":"57ea1b0ac2ef164375c5ff1e"}, "username": "admin34" }
   ]

这是我的User.class,用于存储所有数据:

 public class User{
       private Id id;
       private String user;

       public Id getId() {
          return id;
       }

       public void setId(Id id) {
          this.id = id;
       }

       public String getUser() {
          return user;
       }

       public void setUser(String user) {
          this.user = user;
       }
    }

我的Id.class用于存储ID:

public class Id {

   private String $oid;

   public String get$oid() {
     return $oid;
   }


   public void set$oid(String $oid) {
     this.$oid = $oid;
   }
}

我在Java中使用GSON来将我的用户设为List<User>

   List<User> users = new ArrayList<User>();
   Gson gson = new Gson();
   Type listType = new TypeToken<List<User>>(){}.getType();
   users = gson.fromJson(s,listType);

问题是,我为用户提供了用户名但没有ID,$ oid未注册。有人可以帮我理解这段代码中不起作用的东西吗?

2 个答案:

答案 0 :(得分:5)

您必须将用户类中的ID替换为:

private Id _id;

因为你的json是_id,而不是id。而你的json字符串末尾是错误的,是user,而不是username

答案 1 :(得分:2)

window.load

这是另一种方法。
您也可以使用上面的注释。