字符串无法转换为JSON - Android

时间:2015-06-30 06:17:35

标签: java android json

我正在尝试将我的响应从POST转换为JSON。这就是我在做的事情:

InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuilder response = new StringBuilder();
while((line = rd.readLine()) != null) {
    response.append(line).append("\r");
}
rd.close();
Log.i(TAG, response.toString());
JSONObject jsonObject = new JSONObject(response.toString());

然后我收到错误java.lang.String cannot be converted to JSONObject

但是如果我创建一个字符串String string;然后我粘贴我记录的内容并将其设置为string,然后尝试

JSONObject jsonObject = new JSONObject(string);

它有效,那么为什么粘贴记录的响应时它会起作用,而不是在我使用response.toString();时呢?

在logcat中,它看起来像{"url": "www.google.com"}。然后我将其粘贴到string = "{\"url\": \"www.google.com\"}";

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

之前我遇到过这个问题,试试这个:

if (response != null && response.startsWith("\ufeff")) {  
     in = in.substring(1);  
}  

chart.addListener("rollOverSlice", function(e) {
    // Do something.
});

来自服务器的响应包含BOM表头

答案 1 :(得分:0)

public JSONObject(java.lang.String source)
           throws JSONException

从源JSON文本字符串构造JSONObject。

source - 以{(左括号)开头,以}结尾的字符串(右括号)

在执行response.toString()时,如果字符串不以{开头并且以}结束,那么它将抛出异常。