Android2.3解析Json到JSONObject报错
异常信息 org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject
在2.3以上版本不出错,2.3的时候报这个问题,搜索得到:
由于utf-8的bom头引起的,让去掉bom头,但是也没解决了,即使在本地进行处理json字符串将bom头去掉,但是也不行。json字符串格式也没问题,所以可以肯定的是json字符内部有无法识别或者未知的字符,所以当时就把当时得到的json字符串进行了如下处理:
后来查看了content的第一个字符才知道它是一个空字符,而且这个字符很奇怪它的值是65279,其实就是UTF8的BOM.
要解决这个问题,只要把这个值忽略就行了。于是就用下面的代码
if (content.length() > 1 && content.charAt(0) == 65279) {
content = content.substring(1);
}
JsonObject json = new JsonObject(content);String jsonStr = httpTools.doGet("URL接口地址",paramsBaseList);
String json = jsonStr.substring(jsonStr.indexOf("{"), jsonStr.lastIndexOf("}") + 1);
就很顺利的解决问题,也不报这个异常了,不解释,贴出来供大家参考。
最近评论