org.json.JSONException: org.json.JSONArray 类型的Value[] 无法转换为 JSONObject
Posted
技术标签:
【中文标题】org.json.JSONException: org.json.JSONArray 类型的Value[] 无法转换为 JSONObject【英文标题】:org.json.JSONException:Value[] of type org.json.JSONArray cannot be converted to JSONObjectorg.json.JSONException: org.json.JSONArray 类型的Value[] 无法转换为 JSONObject 【发布时间】:2018-02-04 14:32:45 【问题描述】:当我调用我的服务网站时,我遇到了这个异常:org.json.JSONArray 类型的 org.json.JSONException:Value[] 无法转换为 JSONObject
result
这是我的源代码:
JsonObjectRequest obreq = new JsonObjectRequest(Request.Method.GET, url + editText.getText().toString(), null,
new Response.Listener<JSONObject>()
@Override
public void onResponse(JSONObject response)
try
JSONArray missions = response.getJSONArray("Value");
for(int i=0;i<missions.length();i++)
// Get current json object
JSONObject mission = missions.getJSONObject(i);
// Get the current student (json object) data
Long idMission = mission.getLong("idMission");
String etatMission = mission.getString("etatMission");
text.append(idMission+" " + etatMission);
text.append("\n\n");
catch (JSONException e)
e.printStackTrace();
,
new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
text.setText(error.getMessage());
);
requestQueue.add(obreq);
【问题讨论】:
【参考方案1】:如果您从 API 获得的响应是 JsonArray,那么您应该使用这个:
public JsonArrayRequest(int method, String url, JSONObject jsonRequest,
Listener<JSONArray> listener, ErrorListener errorListener)
super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(),
listener, errorListener);
【讨论】:
【参考方案2】:答案很简单:
for(int i=0;i<response.length();i++)
JSONObject mission = response.getJSONObject(i);
【讨论】:
以上是关于org.json.JSONException: org.json.JSONArray 类型的Value[] 无法转换为 JSONObject的主要内容,如果未能解决你的问题,请参考以下文章
org.json.JSONException:电子邮件没有值
org.json.JSONException:overview_polyLine 没有值
类型 org.json.JSONException 被定义多次
java.lang.classnotfoundexception org.json.jsonexception
在尝试解析 JSON 数据 W/System.err 时出现此错误:org.json.JSONException:对客户没有价值