Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Json转换为Java列表_Java_Json_Gson_Android - Fatal编程技术网

将Json转换为Java列表

将Json转换为Java列表,java,json,gson,android,Java,Json,Gson,Android,我有一个JSON数组,如下所示: [ {"_id": {"$oid":"57e9e4b1f36d281c4b330509"}, "user": "edmtdev" }, {"_id": {"$oid":"57e9e4cec2ef164375c4c292"}, "user": "admin1234" }, {"_id": {"$oid":"57ea1b0ac2ef164375c5ff1e"}, "username": "admin34" } ]

我有一个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;
       }
    }
和my
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 users=new ArrayList();
Gson Gson=新的Gson();
类型listType=newTypeToken(){}.getType();
users=gson.fromJson(s,listType);

问题是,我得到了用户名为但没有ID的用户,$oid没有注册。有人能帮我理解在这段代码中什么不起作用吗?

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

private Id _id;
因为您的json是
\u id
,而不是
id
。最后的json字符串是错误的,是
user
,而不是
username

@SerializedName("_id")
private Id id;

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

是否使用CouchDB?我认为GSON没有将
\u id
注册为字段,但我一点也不确定。使用断点尝试
debug
模式,检查是否接收到正确的对象。可能会重复工作!多谢各位
@SerializedName("_id")
private Id id;