2013-1011

Android2.3解析Json到JSONObject报错

作者: momy 分类: 编程开发 1 Comment »
摘要:org.json.JSONException: Value  of type java.lang.String cannot be converted to 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);

就很顺利的解决问题,也不报这个异常了,不解释,贴出来供大家参考。

标签: Android JSONException JSONObject 阅读: 11251
上一篇: Whatsapp等官网集体被黑 黑客称要求和平 - 9995次
下一篇: C#中巧用ToString()将日期转成想要的格式达到不同的显示效果 - 10442次

网友评论

momy 2013/10/12 9:42:45

if (in != null && in.startsWith("\ufeff")) {

in = in.substring(1);

}

向右滑动解锁留言