我有一個JSON數組是這樣的:轉換的Json列出的Java
[
{"_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;
}
}
我使用GSON
在Java中獲得我的用戶爲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沒有註冊。有人能幫助我理解這段代碼不起作用嗎?
private Id _id;
,因爲你的JSON是_id
,不id
:
您使用的是CouchDB嗎?我認爲GSON並沒有將'_id'作爲一個字段登記,但我不確定。嘗試使用斷點調試模式來檢查您是否收到正確的對象。 –
可能的重複[谷歌Gson - 反序列表對象? (泛型)](http://stackoverflow.com/questions/5554217/google-gson-deserialize-listclass-object-generic-type) –
xenteros