關於 Gson 解析JSON資料。。。

來源:互聯網
上載者:User

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 就可以綁定在一起呢
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.