异常: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值。

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

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

时间: 2025-01-16 12:51:38

异常:org.json.JSONException: End of input at character 0 of的相关文章

android中Http访问时 connection.getResponseCode()不被执行,且报错 org.json.JSONException: End of input at character 0 of .

问题:用 android 4.4 写android访问http时,到connection.getResponseCode() 就不被执行,也不报错:但是抛出org.json.JSONException: End of input at character 0 of .异常: 连接代码: public static String getJsonContent(String url_path){ try { System.out.println("url_path---->>:"

bug_ _org.json.JSONException: End of input at character 0 of

10-16 18:28:39.549: W/System.err(4950): org.json.JSONException: End of input at character 0 of 10-16 18:28:39.559: W/System.err(4950): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)10-16 18:28:39.569: W/System.err(4950): at org.json.JSONTo

关于json解析时异常org.json.JSONException: A JSONObject text must begin with &#39;{&#39; at character 1 of ?{的解决方法

出现这个异常的原因是json串格式不正常,没有"{"开始或没有"}"结尾,仔细检查下json文件的格式一般就可以解决这个问题.但是有时候json文件是正常的,仍然有这个异常信息,怎么办呢,这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常,一般会出现这样的情况是读取的json串是来自于服务器或本地的文件,文件头里自带编码,就我碰到情况来看在Android2.1的手机会报异常,高于2.1的手机是正常的. 解决

JSON中 net.sf.json.JSONException: java.lang.NoSuchMethodException异常

在json对象和java对象转换时 String s = "{'name':'name1','pwd':'pwd1'}"; Person p = (Person)JSONObject.toBean(JSONObject.fromObject(s), Person.class); System.out.println(p.getPwd()); 上面代码中出现以下异常: net.sf.json.JSONException: java.lang.NoSuchMethodException [

json解析异常 - net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

注:在项目中, 我使用原生的ajax请求数据的时候, JSONObject没能帮我解析, 当却不给我报错, 我是在junit单元测试中测试的时候, 发现的.发现好多时候, 特别是通过ajax请求, 不给我们报错,很郁闷, 特别是ie, 有些问题, 得借助FireFox的返回结果分析. 当然, FireFox有时也没报错. 异常栈: net.sf.json.JSONException: java.lang.reflect.InvocationTargetException at net.sf.js

json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

1 //存储Product对象的集合是从,Product是从mysql数据库中查询并添加的 2 ArrayList<Product> list = new ArrayList<Product>(); 3 4 //设置响应对象编码 5 response.setCharacterEncoding("utf-8"); 6 response.setContentType("text/html;charset=utf-8"); 7 8 //将list集

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause 1.异常原因:所请求的json数据中包含java.util.date数据类型,但是在后台并没有将其格式转换 2.解决方法:添加工具类DateJsonValueProcessor import java.text.SimpleDateFormat; imp

org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException异常解决

org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246) org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178) org.apache.struts2.json.JSONWriter.p

Json_异常_net.sf.json.JSONException: JSONObject[&quot;solution&quot;] not found.

net.sf.json.JSONException: JSONObject["solution"] not found. 没有这个元素造成的. 问题代码: JSONObject json = smArr.getJSONObject(i); json.getString("solution"); 分析原因: json中没有这个key,更没有这个key所对应的值 解决办法:判断一下是否有这个key,没有就加入,并添加所对应的值"" f (!json.