美文网首页
json解析模版

json解析模版

作者: 大大大寒 | 来源:发表于2017-06-14 17:28 被阅读686次

请求服务器后,服务器会返回一串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;
    }

}

留下足迹

相关文章

网友评论

      本文标题:json解析模版

      本文链接:https://www.haomeiwen.com/subject/ofheqxtx.html