麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

gson解析注意事項

2019-11-06 09:37:25
字體:
來源:轉載
供稿:網友

今天在解析json時,遇到解析錯誤的問題。 總結來說,字段必須要一致,字段類型要一致,序列化,還要在混淆的情況下要保持相應的類不被混淆。 要保持bean 不被混淆,在 PRoguard-rules.pro添加如下代碼:

-keep class 包名.** { *; }

如下面這個路徑下的UserInfo

com.baidu.app.improve.bean.UserInfo

對應的混淆文件配置:

-keep class com.baidu.app.improve.bean.** { *; }

若在混淆情況下不做如此設置則會報諸如“com.a.b.b.h cannot be cast to com.baidu.app.improve.bean.UserInfo ”這樣的異常。 當然解析方式不正確的話,也會報此異常。

這樣一個json數據:

{ "code": 0, "message": "", "result": { "id": "081234568945", "sn": "", "nickname": "abcd", "mobile": "18888888", "email": "", "avatar": "", "birth": "", "gender": "1", "name": "", "longitude": "", "latitude": "", "availablePoint": 0, "receivePoint": 0, "makePoint": 0, "age": 0, "genderDescr寫的bean如下:

ResultBean

public class ResultBean<T> { private T result; private int code; private String message; .....get/setter方法 }

UserInfo

public class UserInfo implements Serializable{ private String genderDescription; private int receivePoint; private String gender; private String residenceParentIds; private int makePoint; private String latitude; private String mobile; private String birth; private String avatar; private String residenceId; private String residenceMergerName; private String memberTypeName; private String nickname; private String name; private int availablePoint; private String id; private String sn; private String email; private int age; private String longitude; private String residenceName; ......get/setter方法......}

gson解析的正確姿勢為:

private static TextHttpResponseHandler mHandler = new TextHttpResponseHandler() { @Override public void onStart() { super.onStart(); log("HttpResponseHandler:onStart"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { log("HttpResponseHandler:onFailure responseString:" + responseString); } @Override public void onSuccess(int statusCode, Header[] headers, String responseString) { Type type = new TypeToken<ResultBean<UserInfo>>() { }.getType(); ResultBean<UserInfo> resultBean = App
Operator.createGson().fromJson(responseString, type); ...............}

gson解析集合 json

{ "code": 0, "message": "", "result": { "currentCount": 3, "dataList": [ { "id": "6", "longitude": 116.42565, "latitude": 39.84026, "isRead": true, "isCollection": true, "deadline": "2017-02-24 17:34", "memberType": "個人", "pupuContent": "", "publishDate": "2017-02-23 17:34", "intervalTime": "5天", "publisher": "", "publisherAvatar": "", "recipientName": "", "recipientAvatar": "", "distance": 0 }, { "id": "5", "longitude": 116.42565, "latitude": 39.84026, "isRead": true, "isCollection": true, "deadline": "2017-02-24 17:34", "memberType": "個人", "pupuContent": "", "publishDate": "2017-02-23 17:34", "intervalTime": "5天", "publisher": "", "publisherAvatar": "", "recipientName": "", "recipientAvatar": "", "distance": 0 }, { "id": "2", "longitude": 116.42565, "latitude": 39.84026, "isRead": false, "isCollection": false, "deadline": "2017-02-24 17:34", "memberType": "個人", "pupuContent": "", "publishDate": "2017-02-23 17:34", "intervalTime": "5天", "publisher": "", "publisherAvatar": "", "recipientName": "", "recipientAvatar": "", "distance": 0 } ], "pageNo": 1, "pageSize": 100, "isLastPage": true, "lastCount": 1, "count": 3 }}public class PageBean<T> implements Serializable { private int currentCount; private List<T> dataList; .........get/setter方法....... }

Tweet

public class PPMessage implements Serializable { private String id; private int distance; private String recipientAvatar; private double latitude; private String pupuContent; private boolean isRead; private boolean isCollection; private String publishDate; private int min; private String publisherAvatar; private String publisher; private String recipientName; private String memberType; private String deadline; private double longitude; .......get/setter方法......}

解析

TextHttpResponseHandler mHandler = new TextHttpResponseHandler() { @Override public void onStart() { super.onStart(); log("HttpResponseHandler:onStart"); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { onRequestError(); log("HttpResponseHandler:onFailure responseString:" + responseString); } @Override public void onSuccess(int statusCode, Header[] headers, String responseString) { log("HttpResponseHandler:onSuccess responseString:" + responseString); try { ResultBean<PageBean<T>> resultBean = AppOperator.createGson().fromJson(responseString, getType()); ................}....................

這里用了泛型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美性生活免费视频 | 亚洲一区二区三区日本久久九 | 日本欧美一区二区三区在线观看 | 在线成人免费av | 亚洲综合91 | 精品一区二区久久久久 | 欧美一极视频 | 日美av在线| 黄色免费电影网址 | 欧美一区二区黄 | 成人在线观看污 | 欧美成人黄色小视频 | 国产精品1区,2区,3区 | 国产精品色综合 | 午夜在线视频一区二区三区 | 久久久久久久久久性 | 99精品热视频 | 99日韩精品视频 | 中文字幕综合 | 亚洲成人网一区 | 蜜桃视频网站www | www.99re14.com | 99精品在线观看 | 久久精品视频首页 | 国产一级一片免费播放 | 国产精品久久久久久久久久久久久久久 | 成人综合免费视频 | 午夜国内精品a一区二区桃色 | 黄色片免费看网站 | 男女羞羞的视频 | 亚洲视屏在线观看 | 在线日韩亚洲 | 看免费毛片| 国产99久久久国产精品 | 法国极品成人h版 | 视频在线色 | 久久久久国产成人精品亚洲午夜 | 在线无码 | 31freehdxxxx欧美| 久久综合入口 | a黄在线观看 |