将Json转换为Java列表
我有一个JSON数组,如下所示:将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" } ]
[
{"_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;
}
}
和myId.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;