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

Как получить результат как строку, а затем обработать его с помощью jackson?

Ответ 1

Если вы хотите получить результат в виде строки, не используйте JSONRequest. Перейдите с простым классом Request. Ваша проблема довольно проста, сервер возвращает JSONArray только одним элементом внутри. JSONArray не является JSONObject. Вот почему синтаксический анализ не работает.

Ответ 3

Нам нужно использовать 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);

Надеюсь, он решает проблему.