Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)
Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)
http://www.cnblogs.com/Ashia/archive/2012/03/09/2386073.html
今天彻底被 json 伤到了
03-08 13:45:44.648: W/System.err(14432): org.json.JSONException: Value of type java.lang.String cannot be converted to JSONArray
该异常有 json 文件编码所引起的,所以切切不要应用 记事本 编辑 json 文件,而应选择其他文本编辑器,如 EditPlus ,并重视保存编码格局为 UTF-8,不然可能产生中文乱码。
用记事本编辑后,即使 另存为 UTF-8 情势,也会产生乱码,因为保存在为 UTF-8 + BOM 编码
因为我是将 json 文件放在 tomcat ,进行读取的。从而导致该题目产生。
有一次从服务器解析获取到的Json字符串突然报了这个异常,由于这个json是从php页面上推送过来的,当时就查是不是由于编码问题引起的,所以就上网搜了,网上大部分都是说由于utf-8的bom头引起的,让去掉bom头,但是也没解决了,即使在本地进行处理json字符串将bom头去掉,但是也不行。json字符串格式也没问题,所以可以肯定的是json字符内部有无法识别或者未知的字符,所以当时就把当时得到的json字符串进行了如下处理:
String jsonStr = httpTools.doGet("URL接口地址",paramsBaseList);
String json = jsonStr.substring(jsonStr.indexOf("{"), jsonStr.lastIndexOf("}") + 1); //可能与android版本有关?
就很顺利的解决问题,也不报这个异常了,不解释,贴出来供大家参考。
更多推荐
所有评论(0)