请求服务器后,服务器会返回一串json.写的久了摸索了一套解析方式.留下模版
{
“success”:true,
“code”:”1000”,
”message”:”用户已登录”,//用户未登录
”token”:”tokenfslfjsdfsf”,//未登录为null或””
”resultData”:{
“bannerList”:[{},{}],
”deveiceList”:[{},{}]//未登录为null
}
}
{
"code":"50002",
"message":"版本可选更新",
"resultData":{
"foreUpdate":false,
"updateUrl":"http://127.0.0.1/android/test"
},
"success":true,
"token":"tokenfslfjsdfsf"
}
如上.服务固定返回五个数据,其中只有resultData不同
想法就是建立一个BaseBean class 然后其他都继承
public class BaseBean {
public String token;
public boolean success;
public String code;
public String message;
JSONObject resultData ;
}
剩下的继承
public class UpdateBean extends BaseBean {
public boolean foreUpdate;
public String updateUrl;
//只做解析工作然后返回当前对象
public static UpdateBean parseJson(String json) {
UpdateBean updateBean = new UpdateBean();
try {
JSONObject jsonObject = new JSONObject(json);
updateBean.success = jsonObject.optBoolean("success");
if (updateBean.success) {
updateBean.token = jsonObject.optString("token");
updateBean.code = jsonObject.optString("code");
updateBean.message = jsonObject.optString("message");
updateBean.resultData = jsonObject.optJSONObject("resultData");
updateBean.updateUrl = updateBean.resultData.optString("updateUrl");
updateBean.foreUpdate = updateBean.resultData.optBoolean("foreUpdate");
}
} catch (JSONException e) {
e.printStackTrace();
}
return updateBean;
}
}
留下足迹
网友评论