zoukankan      html  css  js  c++  java
  • 异常: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

  • 相关阅读:
    ASM认证与口令文件
    asm 兼容性、asm 主要参数管理
    最常见的5个导致 RAC 实例崩溃的问题
    oracle隐含参数的查看与修改
    三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
    Oracle RAC TAF 无缝failover
    oracle rac的特征
    安装ORACLE时在Linux上设置内核参数的含义
    关于GCC的理解——On the understanding of the GCC
    java中的闭包和回调
  • 原文地址:https://www.cnblogs.com/mada0/p/4864787.html
Copyright © 2011-2022 走看看