com.android.volley.ParseError:org.json.JSONException

我从凌空图书馆得到了这个错误

@Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } 

错误

 com.android.volley.ParseError: org.json.JSONException: Value [{"id":"admin","name":"Admin"}] of type org.json.JSONArray cannot be converted to JSONObject 

我怎样才能得到string的结果,然后我会使用jackson处理它?

Solutions Collecting From Web of "com.android.volley.ParseError:org.json.JSONException"

如果您想以string的forms接收结果,请不要使用JSONRequest。 去简单的请求类。 你的问题是非常简单的服务器回馈一个JSONArray里面只有一个元素。 JSONArray不是JSONObject。 这就是parsing失败的原因。

我注意到有sorting支持的类JsonArrayRequest,所以我使用这个类和问题解决,我使用JsonObjectRequest

https://android.googlesource.com/platform/frameworks/volley/+/43950676303ff68b23a8b469d6a534ccd1e08cfc/src/com/android/volley/toolbox

我们必须使用JsonArrayRequest而不是JsonObjectRequest 。 代码如下:

  RequestQueue queue = Volley.newRequestQueue(this); final String url = "http://192.168.88.253/mybazar/get_product_list.php"; // prepare the Request JsonArrayRequest getRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { // display response Log.d("Response", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("Error.Response", error.toString()); } } ); // add it to the RequestQueue queue.add(getRequest); 

希望,这是解决问题。