2015-02-16 3 views
0

Я впервые попытаюсь разобрать json с volley. Я нашел несколько примеров, и я научился его использовать. но я одна проблема .... у меня есть, как этот JSONandroid parse jsonObject с volley

{ 
"Items ": 
[ 
{ 
    "Branch" :"mybranch", 
    "City" : "London" 
}, 
{ 
    "Branch" :"mybranch1", 
    "City" : "Paris" 
}, 

{ 
    "Branch" :"mybranch2", 
    "City" : "NY" 
} 


] 
} 

и это мой анализатор кода

private void makeGetDictionaries13Request() { 
    showpDialog(); 
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET, 
      urlgetbranchlist, null, new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        Log.e("TAG", response.toString()); 

        try { 
         JSONArray mainjsonArray=response.getJSONArray(""); 
         for (int i = 0; i < mainjsonArray.length(); i++) { 
          JSONObject j_object=mainjsonArray.getJSONObject(i); 
          System.out.println(); 
          Log.e("City", j_object.getString("City")); 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
         Toast.makeText(getApplicationContext(), 
           "Error: " + e.getMessage(), 
           Toast.LENGTH_LONG).show(); 
        } 
        hidepDialog(); 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d("TAG", "Error: " + error.getMessage()); 
        Toast.makeText(getApplicationContext(), 
          error.getMessage(), Toast.LENGTH_SHORT).show(); 
        // hide the progress dialog 
        hidepDialog(); 
       } 
      }); 

    // Adding request to request queue 
    AppController.getInstance().addToRequestQueue(jsonObjReq); 

    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
      15000, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));  
    // Adding request to request queue 
    AppController.getInstance().addToRequestQueue(jsonObjReq); 
} 

Я могу показать JSONObject результат в журнале, но у меня есть ошибка залпа

no value for 

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

ответ

0

Items Используйте вместо "" для получения предметов JSONArray от ответа JSONObject:

JSONArray mainjsonArray=response.getJSONArray("Items"); 
+0

спасибо, что он работает – chromelend

+0

i pasred json и в listview я могу показывать элементы дважды (дублированные) – chromelend

+0

@chromelend: показать код, в котором вы добавляете данные в ArrayList –

1

Существует незначительная ошибка в получении JSONArray из ответа JSONObject. Вы действительно забыли указать имя массива, которое равно items.

Ошибка:

JSONArray mainjsonArray=response.getJSONArray(""); 

Правильно:

JSONArray mainjsonArray=response.getJSONArray("Items"); 
+0

i pasred json и в listview я могу показывать элементы дважды (дублированные) – chromelend

+0

@chromelend Я ничего не могу сказать, не заглядывая в код, который у вас есть! –

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