bug 自定义的json2bean的bug
bug
在json2bean中如果不进行转换 if(bean instanceof HttpLogin){,将调用的市父类的Json2Meß
此并非最好的解决办法,应该用官方的json.toobject
package com.xx.app.inspector.api;
import android.content.Context;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.xx.app.inspector.model.Http;
import com.xx.app.inspector.model.HttpLogin;
import com.xx.app.inspector.utils.LogUtils;
import org.json.JSONException;
import org.json.JSONObject;
public class HttpCallBack<T extends Http> extends RequestCallBack<String> {
private Context mContext;
public HttpCallBack(){}
public HttpCallBack(Context context){
this.mContext = context;
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
}
@Override
public void onFailure(HttpException e, String s) {
}
public T json2Bean(String result,T bean){
try {
JSONObject json = new JSONObject(result);
if(bean instanceof HttpLogin){
HttpLogin h= (HttpLogin)bean;
h.json2Me(json);
}else{
bean.Json2Me(json);
}
return bean;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
public class HttpLogin extends Http {
private final String TAG = "HttpLogin";
public String userName;
public Long userId;
public Token token;
public void json2Me(JSONObject jsonObj) throws JSONException{
super.Json2Me(jsonObj);
if(this.status == STATUS_SUCCESS){
JSONObject body = jsonObj.getJSONObject("body");
userName = body.getString("userName");
userId = body.getLong("userId");
LogUtils.d(TAG,"==="+userName);
token= new Token();
token.json2Me(body.getJSONObject("token"));
}
}
}
public class Http {
/** 业务请求结果:成功*/
public static final int STATUS_SUCCESS = 0;
/** 业务请求结果:错误*/
public static final int STATUS_ERROR = 1;
public Integer status;
public Integer code;
public void Json2Me(JSONObject jsonObj) throws JSONException{
JSONObject obj = jsonObj.getJSONObject("header");
status = (Integer)obj.get("status");
code = getInteger(obj,"status");
code = getInteger(obj,"code");
}
protected Integer getInteger(JSONObject obj,String key) throws JSONException{
return obj.isNull(key)?null:obj.getInt(key);
}
protected Long getLong(JSONObject obj,String key) throws JSONException{
return obj.isNull(key)?null:obj.getLong(key);
}
}
bug 自定义的json2bean的bug的更多相关文章
- ie7,8常见bug,共计257个bug汇总?如何解决ie的历史bug
ie7.8常见bug,共计257个bug汇总 针对web开发者来说,浏览器的bug,特备是ie的bug是很多人的噩梦,因为ie的更新换代没有ff,chrome,safari,opera那么快,而且ie ...
- 软件测试中Bug的生命周期以及Bug的严重等级
软件测试中Bug的生命周期以及Bug的严重等级 我猜你们都会,但能说专业且全面不? 1.首先当测试人员接到一个项目或产品准备测试的时候,测试人员会根据测试用例一步步的来执行用例进行简单的功能测试.当测 ...
- DK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%。
NIO的epoll空轮询bug - Lost blog - 博客园 https://www.cnblogs.com/JAYIT/p/8241634.html NIO的epoll空轮询bug JDK ...
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
问题描述: 测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug? 精彩答案: 会员 土土的豆豆: 本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位. 个人认为,从软 ...
- 解Bug之路-串包Bug
解Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug.现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少 ...
- 自定义右键菜单中bug记录
今天客服部提出一个Bug,拖动滚动条到底部右键表格下方的数据,然后点击拨打电话打出的是表格上面的号码,看了下代码发现bug的原因是因为获取表格中电话号码的方式是通过给tr绑定了mouseover事件, ...
- 修复ext4日志(jbd2)bug( Ext4 文件系统有以下 Bug)
from:http://blog.donghao.org/2013/03/20/%E4%BF%AE%E5%A4%8Dext4%E6%97%A5%E5%BF%97%EF%BC%88jbd2%EF%BC% ...
- 第三方软件内嵌IE出现纵向滚动条消失的BUG,奇葩的IE BUG 真是无奇不有
混了这么久 竟然还有这样难以解决的BUG,最后都跑到英文的MSDN上提问了,因为谷歌都谷不出朕的忧伤了,有木有. 提问原文如下:https://social.msdn.microsoft.com/Fo ...
- 一个iOS6系统bug+一个iOS7系统bug
先看实际工作中遇到的两个bug:(1)iPhone Qzone有一个导航栏背景随着页面滑动而渐变的体验,当页面滑动到一定距离时,会改变导航栏上title文本的颜色,但是有一个莫名其妙的bug,如下:
随机推荐
- Vagrant 手册之 Provisioning - Shell 配置程序
原文地址 Provisioner 命令:"shell" 示例: node.vm.provision "shell" do |s| s.inline = < ...
- LeetCode 144. Binary Tree Preorder Traversal 动态演示
先序遍历的非递归办法,还是要用到一个stack class Solution { public: vector<int> preorderTraversal(TreeNode* root) ...
- Win7 VS2019安装后创建C++工程失败解决
VS2019正式上手,第1个问题创建不了工程,看起来非常类似之前VS2017更新 解决办法 https://github.com/Microsoft/msbuild/issues/4286 和上次的问 ...
- STL之pair及其非成员函数make_pair()
std::pair是一个结构模板,提供了一种将两个异构对象存储为一个单元的方法. 定义于头文件 <utility> template< class T1, class T2 > ...
- 06:(h5*)Vue第六天
目录 1:iView 2: element 3: vuex 正文 1:i-view 1:装包 npm install view-design --save 2:导包 import ViewUI f ...
- Cookie/Session/Local Storage/IndexedDB
本文主要总结客户端/浏览器端数据存储的技术. 在客户端或者浏览器端存储,可以快速的访问页面,当前主要有Cookie,Session,Local Storage,IndexedDB四种(WebSQL呗废 ...
- mybatis使用Dao和Mapper方式
1.配置jdcp.properties数据库连接文件 #mysql database setting jdbc.type=mysql jdbc.driver=com.mysql.jdbc.Driver ...
- 【五一qbxt】day7-2 选择客栈
停更20天祭qwq(因为去准备推荐生考试了一直在自习qwq) [noip2011选择客栈] 这道题的前置知识是DP,可以参考=>[五一qbxt]day3 动态规划 鬼知道我写的是什么emm 这道 ...
- traceroute学习
之前只知道ping telnet命令,后面学习了traceroute命令 ping最常用的,看是否可以ping通ip,查看网络是否可达 telnet探测端口是否通,telnet ip port tra ...
- springcloud费话之Eureka接口调用(feign)
目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...