2014-01-08 3 views
10

Я получил эту ошибку из залпового библиотеки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 

Как я могу получить результат в виде строки, а затем я будет обрабатывать его с помощью джексона?

ответ

19

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

+0

этот действительно помог спасибо –

+0

@Pasquale Anatriello Спасибо – Dev

2

Мы должны использовать 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); 

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

Смежные вопросы