我正在尝试将我的响应从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\"}";
感谢您的帮助
答案 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()
时,如果字符串不以{
开头并且以}
结束,那么它将抛出异常。