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


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

  • 相关阅读:
    OpenMp之reduction求和
    C++中的字节对齐
    java mail邮件发送(带附件) 支持SSL
    linux下通过命令启动多个终端运行对应的命令和程序
    JAVA数组的定义及用法
    ThreadPoolExecutor使用介绍
    命令拷屏之程序分析
    java实现第五届蓝桥杯供水设施
    java实现第五届蓝桥杯供水设施
    java实现第五届蓝桥杯供水设施
  • 原文地址:https://www.cnblogs.com/mada0/p/4864787.html
Copyright © 2020-2023  润新知