本文共 2087 字,大约阅读时间需要 6 分钟。
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 2489379705 at line 1 column 7261 path $.banners[4].targetId
这不就是json解析异常问题吗,还记得之前文章里面对onError方法进行了特殊判断吗,如下:
/** * 新增方法实现onError方法的返回提示(通用接口返回) */ public static class OnCallbackimplements Observer { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(T t) { } @Override public void onError(Throwable e) { if (!isNetWorkActive(App.getInstance())){ ToastUtils.show("网络不给力,请检查网络"); return; } if(e instanceof ConnectException){ ToastUtils.show("服务器连接失败,请稍后再试"); }else if(e instanceof SocketTimeoutException){ ToastUtils.show("服务器连接超时,请稍后再试"); }else{ ToastUtils.show("系统繁忙,请稍后再试"); } } @Override public void onComplete() { } }
修改一下,添加json解析失败的一些监听:
@Override public void onError(Throwable e) { if (!isNetWorkActive(App.getInstance())){ ToastUtils.show("网络不给力,请检查网络"); return; }if (e instanceof JsonParseException || e instanceof JSONException || e instanceof ParseException){ ToastUtils.show("数据解析错误"); }else if(e instanceof ConnectException){ ToastUtils.show("服务器连接失败,请稍后再试"); }else if(e instanceof SocketTimeoutException){ ToastUtils.show("服务器连接超时,请稍后再试"); }else{ ToastUtils.show("系统繁忙,请稍后再试"); } }
然后我再运行项目,果然报的是"数据解析错误":
我们看到之前提示的Expected an int but was 2489379705 at line 1 column 7261 path $.banners[4].targetId
,修改我们的banner_bean实体类里面的targetId为long,ok问题解决: 所以说,对gosnformat插件使用也不要完全放心,毕竟说不准就会出现这种字段类型的错误。 转载地址:http://rpdqi.baihongyu.com/