org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject

解析服务器返回的Json串时,JSONObject对象抛出了这个异常。

原以为是返回的json格式错误了,仔细对比看不出所以然。至少字符上看是格式没问题的。。

那就可能是编码的问题了。仔细比较每个字符,的确在json串头部发现字符:"\ufeff" 。

客户端解决方案:


public static final String removeBOM(String data) {

if (TextUtils.isEmpty(data)) {

return data;

}


if (data.startsWith("\ufeff")) {

return data.substring(1);

} else {

return data;

}

}


服务器端解决方案:

将输出此json的php源码重新用editplus之类用utf-8无BOM的编码保存。【不要用windows系统自带的记事本编辑php源码,这个BOM就是记事本这些windows自带的编辑器引入的。】



阅读更多

时不时报这个异常问题org.json.JSONException: Value ‹ of type java.lang.String cannot b

06-22

org.json.JSONException: Value ‹ (这是一堆乱码)of type java.lang.String cannot be converted to JSONObjectrnrn莫名其妙的时好时坏。求大神解答、给个灵感。在线等。急啊!!!!!!!!!!!!!!!rn06-22 15:17:14.825: W/System.err(7508): org.json.JSONException: Value ‹(这是一堆乱码)of type java.lang.String cannot be converted to JSONObjectrn06-22 15:17:14.825: W/System.err(7508): at org.json.JSON.typeMismatch(JSON.java:111)rn06-22 15:17:14.841: W/System.err(7508): at org.json.JSONObject.(JSONObject.java:158)rn06-22 15:17:14.861: W/System.err(7508): at org.json.JSONObject.(JSONObject.java:171)rn06-22 15:17:14.865: W/System.err(7508): at com.sixshut.view.Menu_History$historyAsyncTask.doInBackground(Menu_History.java:223)rn06-22 15:17:14.869: W/System.err(7508): at com.sixshut.view.Menu_History$historyAsyncTask.doInBackground(Menu_History.java:1)rn06-22 15:17:14.873: W/System.err(7508): at android.os.AsyncTask$2.call(AsyncTask.java:287)rn06-22 15:17:14.893: W/System.err(7508): at java.util.concurrent.FutureTask.run(FutureTask.java:234)rn06-22 15:17:14.901: W/System.err(7508): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)rn06-22 15:17:14.905: W/System.err(7508): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)rn06-22 15:17:14.905: W/System.err(7508): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)rn06-22 15:17:14.905: W/System.err(7508): at java.lang.Thread.run(Thread.java:856)rn

没有更多推荐了,返回首页