今天一同学问我为什么JSONOb
ject obj = getJSONObject("data");解析服务器给的数据时报错:错误信息
at data of type java.lang.String cannot be converted to JSONObject
1:首先看getJSONObject(String string) 源码
1:首先看getJSONObject(String string) 源码
/**
* Returns the value mapped by {@code name} if it exists and is a {@code
* JSONObject}.
* @throws JSONException if the mapping doesn't exist or is not a {@code
* JSONObject}.
*/
public JSONObject getJSONObject(String name) throws JSONException {
Object object = get(name);
if (object instanceof JSONObject) {
return (JSONObject) object;
} else {
throw JSON.typeMismatch(name, object, "JSONObject");
}
}
//当返回值不是JSONObject对象时,抛出异常;
2:原因分析
我们就抛出异常了.所以走了else代码块,所以我们拿到的不是JSONObject对象
throw JSON.typeMismatch(name, object, "JSONObject");
所以你只能getString();再转换成JSONObject或者Array;
我们的说法是错误的:后台给你的Json数据
应该这样说:后台给你的Json格式的数据字符串