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版本有關?

就很順利的解決問題,也不報這個異常了,不解釋,貼出來供大家參考。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章