retrofit2 rxjava gson解析空数组字符串 崩溃

当服务器返回[]这样的就程序就会崩溃,当服务器返回[]数组里有对象字符串就不崩溃

2个回答

对返回的字符串做一下过滤,是空的时候,就不需要用gson解析,直接返回

c_789
Blisterfritters Retrofit2 的代理类返回Observable> 做过滤不方便吧
大约 2 年之前 回复

Retrofit2 的代理类返回Observable> 做过滤不方便吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Retrofit2自定义Gson解析
一般来说从服务端获取的数据格式是固定的: { "code":0, "message":"成功", "data":{"测试内容"} } 或者 { "code":0, "message":"成功", "data":[{},{},{}] } 一般我们也会事先创建一个类来
使用gson配合Retrofit2解析服务器返回
这种情况下我们可以使用Gson提供的TypeAdapter或者JsonDeserializer<T>,JsonSerializer<T>来做特殊处理 TypeAdater使用相对复杂,能处理序列化和反序列化两种情况。 JsonDeserializer<T>,JsonSerializer<T>分别用来处理反序列化和序列化的情况,使用起来容易一些,但会牺牲一些性能。 我们这里主要处理服务器端的返回数据,所以选择使用JsonDeserializer<T>来做特殊处理。
Gson解析数组
被解析的字符串  [Role { accountList = [Account { id = 12, username = '谷歌Gson', password = 'null', createtime = null, updatetime = null }, Account { id = 12, username = '谷歌Gson', password = 'null', cr...
Gson 解析数组数组时
Gson gson = new Gson(); DataDataBean 是自己的数据ArrayList dataDataBean= gson.fromJson(s, new TypeToken>(){}.getType());for (DataDataBean a: dataDataBean) { Log.i("------------",a.toString()); List d
gson 解析数组问题
这种类型该怎么去解析呢rnrnrnrn["older":"olderId":3,"olderPhoto":"http://localhost/onecard/photos/20160826103903686.gif","olderName":"李老","age":60,"sex":"女","equId":1000001,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderId":1,"olderPhoto":"http://localhost/onecard/photos/20160808151252331.png","olderName":"刘老","age":63,"sex":"男","equId":1000002,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000003,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000005,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000006,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000007,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000008,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000010,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000020,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",rn"older":"olderId":2,"olderPhoto":"http://localhost/onecard/photos/20160810143737724.png","olderName":"啊啊啊","age":65,"sex":"男","equId":1000026,"pCode":"CN-SZ-00002-3241","adminPhone":"18522039001",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000028,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000029,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000030,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",rn"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000031,"pCode":"CN-SZ-00002-3241","adminPhone":"13352077638"]
gson源码解析-数组
今天看看数组相关的转换 private void array() { List<User> users = new ArrayList<>(); for (int i = 0; i < 5; i++) { User user = new User(); user.setAge(24+i);
gson日期转换和解析数组
http://hi.baidu.com/yuji0228/blog/item/394f86395fc0113eb9998f30.htmlprivate static Gson gson = new GsonBuilder() .registerTypeAdapter(Date.class,new UtilDateSerializer()) .registerTypeAdapter(Calendar...
Gson解析字符串
Gson gson = new Gson(); Shareinfo result = gson.fromJson(title, Shareinfo.class); dec = result.getTitle(); titles = result.getDesc(); URL
使用Retrofit2 RxJava 文件上传
前言Retrofit2 的文件上传在官方网站上并没有多说,只是说可以使用@Multipart注解即可使用,但是没有细致的去讲解这块怎么用。 在github的issus上有几篇文章,讲的有点乱,现在整理一下,如何使用
retrofit2与rxjava结合的demo
文章地址 http://blog.csdn.net/qq_26296197/article/details/79372460。
Retrofit2与RxJava用法大全
Retrofit2是square公司出品的一个网络请求库,网上有很多相关的介绍。我很久以前都想去研究了,但一直都有各种事情耽搁,现在就让我们一起去捋一捋,这篇主要讲解Retrofit2与RxJava的基本用法。 get请求 post请求 文件上传 文件下载 开启日志拦截 与RxJava结合使用 什么是Retrofit2官网是这么介绍的:Retrofit adapts a Java interfac
retrofit2 + rxjava 2 + MVP
Retrofit2 + rxjava2 + mvp实现的demo,很实用很全面的例子
使用Gson解析字符串
这几天在调接口的时候,需要解析第三方提供的字符串。 依赖的jar包 gson-2.2.4.jar 头部引入 import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; 这是他们丢过来的字符串。 [
Gson解析纯数组的json
JsonParser parser = new JsonParser(); //test1解析出来的json为字符串 JsonArray parse = parser.parse(test1).getAsJsonArray(); //Bean为实体类 List list = new ArrayList(); Bea
Gson解析数组和list容器
Gson解析数组和list容器 使用Gson解析首先需要加入架包文件:gson-2.2.4.jar 定义一个类Student: public class Student { String name="xiao"; String sex="男"; } 定义Java文件: public class ListToGson { public static void m
android gson 解析不规则数组
["older":"olderId":3,"olderPhoto":"http://localhost/onecard/photos/20160826103903686.gif","olderName":"李老","age":60,"sex":"女","equId":1000001,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderId":1,"olderPhoto":"http://localhost/onecard/photos/20160808151252331.png","olderName":"刘老","age":63,"sex":"男","equId":1000002,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000003,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000005,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000006,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000007,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000008,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000010,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000020,"pCode":"CN-SZ-00002-3241","adminPhone":"18722574812",n"older":"olderId":2,"olderPhoto":"http://localhost/onecard/photos/20160810143737724.png","olderName":"啊啊啊","age":65,"sex":"男","equId":1000026,"pCode":"CN-SZ-00002-3241","adminPhone":"18522039001",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000028,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000029,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000030,"pCode":"CN-SZ-00002-3241","adminPhone":"17801091244",n"older":"olderPhoto":"http://localhost/onecard/photos/null","equId":1000031,"pCode":"CN-SZ-00002-3241","adminPhone":"13352077638"]nn这种格式的该怎么解析呢?
异步和gson解析字符串的方法
private void getDataFromNet(final String name) { AsyncTask< Void, Void, String> asyncTask = new AsyncTask< Void, Void, String>() { @Override protected String doInBack
初学 retrofit2与RXJava 的搭配使用
retrofit2和RXJava 很早以前就有了 但是一直没事件学习 趁着前几天有空就学习了下 很难在网上找到完整的 retrofit2与RXJava 的搭配使用的例子 我自己也折腾半天才搞明白 首先我是在网上查看别人给出的文章试着实现我自己的登陆功能 http://blog.csdn.net/lmj623565791/article/details/51304204下面说说具体实现方法吧
Retrofit2 + Rxjava 请求网络图片 的问题
接口如下npublic interface ImgService n @GETn Observable getImg(@Url String url);nnnnRetrofit retrofit = new Retrofit.Builder()n .addCallAdapterFactory(RxJavaCallAdapterFactory.create())n .addConverterFactory(GsonConverterFactory.create())n .baseUrl("http://pic41.nipic.com/")n .build();n ImgService imgService = retrofit.create(ImgService.class);n imgService.getImg("http://pic41.nipic.com/20140509/4746986_145156378323_2.jpg")n .subscribeOn(Schedulers.io())n .map(new Func1() n @Overriden public Bitmap call(ResponseBody responseBody) n // 代码还从来没运行到过这个函数。。。n // responseBody.byteStream();n // return null;n n )n .observeOn(AndroidSchedulers.mainThread())n .subscribe(new Subscriber() n @Overriden public void onCompleted() nn nn @Overriden public void onError(Throwable e) n e.printStackTrace();n nn @Overriden public void onNext(Bitmap bitmap) n img.setImageBitmap(bitmap);n n );n n 现在出现的异常是:n com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $n 这个图片网址打开就是一张图片,不是Json数据,是因为这个原因吗?n 现在一头雾水,问题出现在哪里?
Gson解析【】数组在外的解析方法
//获取数据 MyTask task=new MyTask(new MyTask.Icallbacks() { @Override public void getJsonData(String jsonstr) { //创建一个集合,将bean类定为泛型 List datas=new ArrayList //new
Gson解析数组和解析集合的方法
Gson解析数组和解析集合的方法。Gson为我们提供了TypeToken来实现对泛型的支持,用来解析集合
retrofit2 上传文件直接崩溃,求解!!!
Bitmap bitmap = ((BitmapDrawable) iv_head_sculpture.getBackground()).getBitmap();n saveBitmap2file(bitmap, "headImg.png");n File file = new File(Environment.getExternalStorageDirectory() + "headImg.png");n RequestBody headImg =n RequestBody.create(MediaType.parse("multipart/form-data"), file);n call = apiService.uploadHeadImg(headImg);n call.enqueue(new Callback() n @Overriden public void onResponse(Call call, Response response) n DataResult result = response.body();n Log.i("gowcage-test", result.toString());n Toast.makeText(getApplicationContext(),n "图片上传成功", Toast.LENGTH_LONG).show();n nn @Overriden public void onFailure(Call call, Throwable t) n Toast.makeText(getApplicationContext(),n "图片上传失败", Toast.LENGTH_LONG).show();n n );n 直接崩溃,求解!!!
使用retrofit2和rxjava封装的网络框架RNet:(二)RNet的源码解析
妹子我写代码很辛苦/(ㄒoㄒ)/~~ ,转载请注明出处哦~http://blog.csdn.net/u011791526/article/details/73321495 作者:catRuan(阮妹子) 联系方式:QQ:940472401 邮箱:940472401@qq.com 一、什么是RNet? RNet是基于retrofit2和rxjava封装的一个网络请求框架。 二、RNet
Gson,FASTjson 解析字符串为数组,日期等方式
混淆打包.1 java 是既需要 解释 也需要编译 执行 .2 变量名 不是给 机器看的(在字节码文件中可以找到哦),这些方法名变量名对执行完全无用是程序员看的,class 中行号,把java语句编程字节码文件,这些发生语句在哪一行都会标出,混淆就是将这些删掉,类名等全删掉, jvm 解释型 直接用内存地址引用的话可读性太差 class 中对执行 完全无用 :方法名 变量名 类名 在class
Retrofit2源码解析(一)
一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码OkHttp Github。在解析源码前先了解retrofit如何使用吧。 二、Retrofit的使用 配置: 添加Retrofit依赖: co
Retrofit2 工作原理解析(一)
Retrofit2 工作原理解析(一) 概述 Retrofit是square公司开源的一款类型安全的http请求框架,用于Java和Android程序。Retrofit可以说是restful风格的一个代表作,可能有人对于restful设计风格不太熟悉,在此有必要做一下解释;restful(Representational State Transfer):表现层状态转化,结合这里的Retrofi...
Retrofit2深度解析
Retrofit2深度解析 一、简介 本文基于implementation 'com.squareup.retrofit2:retrofit:2.5.0' 编写 Retrofit2大致的使用步骤如下: 1.初始化Retrofit 2.构建网络请求 3.发送请求,解析数据 我们通过使用顺序来一步一步解析源码 首先,看初始化的代码 Retrofit retrofit = new Retrofit.Bu...
GSON解析
开发十年,就只剩下这套Java开发体系了 &amp;gt;&amp;gt;&amp;gt;    ...
gson解析
一.简单的gson使用 1 string to json Gson gson = new Gson(); String jsonMes ="{\"id\":1,\"name\":\"李四\",\"birthDay\":\"Mar 24, 2019 1:11:36 PM\"}"; Student student1 = gson.fromJson(jsonMes, Student.c...
Gson解析
Gson解析的时候,json节点必须与实体的属性名,类型是一样的,否则转换不出来。。。
Retrofit2 原理解析
在Android开发方面网络请求框架层出不穷,由刚开始使用的URLConnection,HttpClient,AsyncHttpClient ,Volley。到现在最流行的OkHttp ,Retrofit, 对一个Android开发者来说再熟悉不过,就其OkHttp和Retrofit可以说的上是黄金组合,Retrofit其实并不负责网络请求,只是完成对api的封装,再交给底层的网络框架去完成(Ret
retrofit2简易源码解析
构建retofit是通过builder来设置参数,直接看源码中的build() 1.如果callFactory为空则新建一个OkHttpClient对象 2.设置回调所在线程,默认是在主线程(这里有个Platform类,用于在不同平台上获取主线程,并且获取默认的callAdapter就是在主线程直接返回call) 3.用两个列表来装添加的callAdapter和converter 4.构造
Retrofit2 完全解析(一)
1.概述      在对Android 开发中,我们都是从原生的 HttpUrlConnection到经典的 Apache公司的HttpClient,再到对前面这些网络基础框架的封装(比如Volley、AsyncHttpClient等)。Http请求相关开源框架还是很多的,今天我们讲解 Square 公司开源的Retrofit。Square 公司的框架总是一如既往的简洁优雅!Retrofi
gson 解析
从服务器获取的 json 数据 有两种:rn["id":20,"typeValue":"01正常出库","id":21,"typeValue":"02采购退货","id":22,"typeValue":"03盘亏出库","id":23,"typeValue":"04次品出库"] rnrn和rn"success":1, "msg":"登录成功!","id":1,"roles":"监管员","realName":"aa","sessionid":"FC251EBBE9C532D03DD0C37DBB983612"rnrn现在我要在一个方法里面用gson解析,请问我该怎么判断?求大家指点下。rn[img=https://img-bbs.csdn.net/upload/201411/07/1415335721_992998.png][/img]
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法