异常:org.json.JSONException: End of input at character 0 of

摘要:
如果返回值不符合json标准,也会报告异常。解决方案:1。在服务器端返回默认的json值。

在使用Gson时遇到org.json.JSONException: End of input at character 0 of 异常。

public static void jsonArrayRequest(final MainActivity mainActivity, RequestQueue rq, String uri,
            TextView tv1, List<News> datas) {
        final Gson g = new Gson();
        String json = g.toJson(datas);
        try {
            JSONArray jsonArray = new JSONArray(json);
            JsonArrayRequest jar = new JsonArrayRequest(Method.POST, uri, jsonArray,
                    new Listener<JSONArray>() {

                        @Override
                        public void onResponse(JSONArray array) {
                            //如果返回值为空,JSONArray无法把它转换成JSONArray则会报End of input at character 0 of异常
                            //如果返回值不符合json标准,也会报异常
                            String json = array.toString();
                            Type typeOfT = new TypeToken<List<News>>() {
                            }.getType();
                            List<News> list = g.fromJson(json, typeOfT);
                            Log.i("pepelu", list.get(0).getTitle());
                        }
                    }, new ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError arg0) {
                            Toast.makeText(mainActivity, "error:" + arg0.getMessage(), Toast.LENGTH_SHORT)
                                    .show();
                            Log.i("pepelu", arg0.getMessage());
                        }
                    }) {
                @Override
                public Map<String, String> getHeaders() throws AuthFailureError {
                    Map<String, String> map = new HashMap<String, String>();
                    map.put("accept", "application/json");
                    map.put("content-type", "application/json;charset=utf-8");
                    return map;
                }
            };
            rq.add(jar);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

原因:在请求发送后会调用public void onResponse(JSONArray array)方法,如果服务端无返回值,就会报End of input at character 0 of 异常。如果返回值不符合json标准,也会报异常。

解决办法:1.在服务器端返回一个缺省json值。2.使用其他JSON类代替。3.关闭异常输出

如果返回值无法转换成json也会报异常。

http://stackoverflow.com/questions/8740381/getting-a-jsonexception-end-of-input-at-character-0

免责声明:文章转载自《异常:org.json.JSONException: End of input at character 0 of》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇pytest + allure自动化测试nginx -s reload "/alidata/server/nginx/logs/nginx.pid" failed下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vb中从域名得到IP及从IP得到域名

'vb中从域名得到IP及从IP得到域名 Private Const WS_VERSION_REQD = &H101 Private Const WS_VERSION_MAJOR = WS_VERSION_REQD &H100 And &HFF& Private Const WS_VERSION_MINOR =...

DateUtil

public class GenernalDate { //一天秒数 public final static long MILLISECONDS_OF_DAY = 1000 * 60 * 60 * 24; public final static int NULL_DATE = 19000101; private fi...

在Java代码中使用iTextPDF生成PDF

1. 生成PDF 载入字体 static { FontFactory.register("/fonts/msyh.ttf"); FontFactory.register("/fonts/msyhbd.ttf"); FontFactory.register("/fonts/simsun.ttc")...

Java Web----------response&amp;amp;&amp;amp;request

1.response 代表响应, 可以理解为一个空的箱子,我们在里面填入要发送到浏览器的内容. 服务器会把这些内容组装成http响应. 1.1 响应首行 协议/版本号 状态码 状态码描述 添加状态码 和 描述 void setStatus(int sc) 只设置状态码 void setStatus(int sc, String sm)...

C#获取类库(DLL)的绝对路径

C#中当我们在写公共的类库的时候难免会调用一些xml配置文件,而这个配置文件的路径则非常重要,常用的方式就是写在web.config中,而我们也可以将配置文件直接放在dll的同级目录,那么怎么获得当前dll的同级目录呢,使用下面方法即可。 /// <summary> /// 获取Assembly的运行路径 /// </summary&...

PHP单点登陆

本文主要介绍了利用webservice,session,cookie技术,来进行通用的单点登录系统的分析与设计。具体实现语言为PHP。单点 登录,英文名为Single Sign On,简称为 SSO,是目前企业,网络业务的用户综合处理的重要组成部分。而SSO的定义,是在多个应用系统中,用户只需要登陆一次就可以访问所有相互信任的应用系 统。 动机: 用过uc...