我在android上解析这个JSON -
{
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/s180x540/34325347_936407749733967_1354847545689012266_n.jpg?oh=dde033205b1230568dc26b7b01cy5424&oe=56599FD6"
}
}
我有这段代码 -
json = response.getJSONObject();
Log.d("json data",json.toString());
try {
jarray = json.getJSONArray("data");
} catch (JSONException e) {
e.printStackTrace();
}
出现此错误 - org.json.JSONObject类型的数据无法转换为JSONArray
有谁能说出错在哪里?任何指针都很受欢迎。
答案 0 :(得分:3)
答案 1 :(得分:2)
数据实例不是数组,而是JSON对象。
因此getJSONArray
抛出异常。请改用getJSONObject("data")
。
答案 2 :(得分:1)
在这里看一下JSON数据类型的例子: http://www.w3schools.com/json/json_syntax.asp
您正在使用object,而不是数组。数组使用'['和']'进行舍入。
答案 3 :(得分:1)
As"数据"是一个JsonObject,你试图以JsonArray的形式访问它,而你正面临这个异常,试试这个:
json = response.getJSONObject();
Log.d("json data",json.toString());
try {
JSONObject jobject = json.getJSONObject("data");
} catch (JSONException e) {
e.printStackTrace();
}
答案 4 :(得分:1)
你的json中没有JSON数组。 使用以下代码
String jsonString = "{
'data': {
'is_silhouette': false,
'url': 'https://scontent.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/s180x540/34325347_936407749733967_1354847545689012266_n.jpg?oh=dde033205b1230568dc26b7b01cy5424&oe=56599FD6'
}
}";
JSONObject jsonObj = new JSONObject(jsonString);
JSONObject data = jsonObj.getJSONObject("data");
String url = data.getString("url");