码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-10-09 19:53:06      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:

在使用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值。

如果返回值无法转换成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

标签:

原文地址:http://www.cnblogs.com/mada0/p/4864787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!