1.首先,我是從伺服器端傳回來的JSON資料如下:
{"info":"succeed","user_id":"1","user_password":"9999","user_email":"95469@qq.com","user_nicheng":"\u6817\u5b50","user_sex":"\u7537","user_phone":"13590272662","user_add":null,"user_qianming":"\u5199\u4e0a\u4e00\u53e5\u8bdd\uff0c\u54f2\u7406\u4eba\u751f\u3002__by_\u6817\u5b50"}
資訊大概是:info,user_id,user_password,user_email,user_nicheng,
user_sex,user_phone,user_add,user_qianming
2.然後我用 Gson 去解析以上這一段JSON,代碼如下:
UserBean user = new Gson().fromJson(string, UserBean.class);
3.最後貼上 UserBean.class 的代碼。。。
public class UserBean implements IUserBean{ String info; int userId; String userEmail; String userNicheng; String userSex; String userPhone; String userAdd; String userQianming; //還有以下的 setXXX , getXXX 方法就忽略了
然後問題是解析出來的 UserBean 的對象 user 中,只有info,userId是有值得,其他沒有值,這是怎麼回事。。。?
還有,Gson 中的fromJson方法,對我自訂的 UserBean 有什麼要求嗎?
回複內容:
1.首先,我是從伺服器端傳回來的JSON資料如下:
{"info":"succeed","user_id":"1","user_password":"9999","user_email":"95469@qq.com","user_nicheng":"\u6817\u5b50","user_sex":"\u7537","user_phone":"13590272662","user_add":null,"user_qianming":"\u5199\u4e0a\u4e00\u53e5\u8bdd\uff0c\u54f2\u7406\u4eba\u751f\u3002__by_\u6817\u5b50"}
資訊大概是:info,user_id,user_password,user_email,user_nicheng,
user_sex,user_phone,user_add,user_qianming
2.然後我用 Gson 去解析以上這一段JSON,代碼如下:
UserBean user = new Gson().fromJson(string, UserBean.class);
3.最後貼上 UserBean.class 的代碼。。。
public class UserBean implements IUserBean{ String info; int userId; String userEmail; String userNicheng; String userSex; String userPhone; String userAdd; String userQianming; //還有以下的 setXXX , getXXX 方法就忽略了
然後問題是解析出來的 UserBean 的對象 user 中,只有info,userId是有值得,其他沒有值,這是怎麼回事。。。?
還有,Gson 中的fromJson方法,對我自訂的 UserBean 有什麼要求嗎?
info有值因為JSON裡有info
其他沒有值是因為class的member在JSON裡不存在(GSON不會把JSON的user_email填到java的userEmail)
userId有值因為.. java的int一定有一個值
gson沒啥特別的坑.. 有個無參數無依賴的建構函式就能用 (也就是說非static的inner class不可以. 如果沒有就要自己寫一個InstanceCreator)
public class Book implements Serializable { @SerializedName("jcId") private String bookId; ... 省略set get 方法 }json 串裡是jcId, 用註解和bookId 就可以綁定在一起呢