-3

This is my Method where i am parsing the json. The problem is that sometimes it gives error null and some times working fine. Can anyone tell me what is the problem ??

  public void requestRestaurantSearchByFilter_list() {
        mProgressDialog.show();
        StringRequest restrolistrequestfilter = new StringRequest(Request.Method.POST, GlobalData.SEARCHBYFILTERURL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {

                            mProgressDialog.dismiss();
                            mPaymentMethodList.clear();
                            mDataList.clear();
                            mAllList.clear();
                            mAdapter.notifyDataSetChanged();

                            Log.e("responcefilterlist....", response);
                            JSONObject jObject = new JSONObject(response);
                            if (jObject.getString("status").equals("1")) {


                                JSONArray jsonArray = jObject.getJSONArray("data");
                                for (int i = 0; i < jsonArray.length(); i++) {


                                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                                    PojoRestaurant pojoRestaurant = new PojoRestaurant();

                                    pojoRestaurant.setRestroName(jsonObject.getString("RestaurantName"));
                                    pojoRestaurant.setDeliveryTime(jsonObject.getString("DeliveryTime"));
                                    pojoRestaurant.setPaymentOption(jsonObject.getString("PaymentOptions"));
                                    pojoRestaurant.setMinimumOrder(jsonObject.getString("MinimumOrder"));
                                    pojoRestaurant.setRestroImage(jsonObject.getString("ImageUrl"));

                                    Log.e("retroname", "" + jsonObject.getString("RestaurantName"));
                                    id = jsonObject.getString("ID");
                                    mPaymentMethodList.add(jsonObject.getString("PaymentOptions"));


                                    getpaymentId.add(id);
                                    getListViewId.add(id);


                                    if (jsonObject.getString("OpenStatus").equals("true")) {

                                        pojoRestaurant.setOpenClose("Open");


                                    } else {
                                        pojoRestaurant.setOpenClose("Close");


                                    }

                                    mAllList.add(pojoRestaurant);
                                    mDataList.add(pojoRestaurant);
                                    //mDeliveryList.add(jsonObject.getString("DeliveryTime"));
                                    // mCuisineTypeList.add(jsonObject.getString("RestaurantName"));


                                }

                                mListView.setAdapter(mAdapter);
                                mAdapter.notifyDataSetChanged();


                            } else {

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {

                        Log.e("error", "" + volleyError.getMessage());




                    }
                }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {

                Map<String, String> params = new HashMap<String, String>();

                String foodid = getArguments().getString("FOODID");
                String areaid = getArguments().getString("AREAID");

                Log.e("foodid", "" + foodid);
                Log.e("areaid", "" + areaid);


                params.put("DeliveryAreaID", areaid);
                params.put("ProvideOffers", "0");
                params.put("NewRestaurant", "0");
                params.put("PaymentMethod", "0");
                params.put("OpenRestaurant", "0");
                params.put("FoodID", foodid);

                return params;
            }
        };

        RequestQueue restrolistqueuefilter = Volley.newRequestQueue(getContext());

        restrolistqueuefilter.add(restrolistrequestfilter);


    }

My server responce is :

This is the responce which i am getting from the server :

{
  "status": 1,
  "StatusMessage": "Restaurent List",
  "data": [
    {
      "ID": "7",
      "RestaurantName": "Water Lemon",
      "MinimumOrder": "20.000",
      "DeliveryTime": "30 minutes",
      "ImageUrl": "restaurant.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "8",
      "RestaurantName": "Casper and Gambini",
      "MinimumOrder": "40.000",
      "DeliveryTime": "",
      "ImageUrl": "restaurant1.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "11",
      "RestaurantName": "B L E N D S",
      "MinimumOrder": "50.000",
      "DeliveryTime": "",
      "ImageUrl": "/images/restaurant2.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "12",
      "RestaurantName": "khyber Indian Cuisine",
      "MinimumOrder": "5.000",
      "DeliveryTime": "",
      "ImageUrl": "/images/restaurant3.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "13",
      "RestaurantName": "Khyber Indian",
      "MinimumOrder": "5.000",
      "DeliveryTime": "",
      "ImageUrl": "http://maaqulat.way2gps.com/images/logo4.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "14",
      "RestaurantName": "test",
      "MinimumOrder": "10.000",
      "DeliveryTime": "",
      "ImageUrl": "/images/restaurant4.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "15",
      "RestaurantName": "yahoo",
      "MinimumOrder": "5.000",
      "DeliveryTime": "",
      "ImageUrl": null,
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "16",
      "RestaurantName": "Khaber",
      "MinimumOrder": "3.000",
      "DeliveryTime": "",
      "ImageUrl": "k0YlxXBVOYZUkhaber.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "17",
      "RestaurantName": "Taj mahal",
      "MinimumOrder": "5.000",
      "DeliveryTime": "",
      "ImageUrl": "z4L1JoFkQVjodownload.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "18",
      "RestaurantName": "Indian Food",
      "MinimumOrder": "10.000",
      "DeliveryTime": "",
      "ImageUrl": "aMyXtt0YQfKZ5183Indian-Food-Catering-Singapore.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "19",
      "RestaurantName": "Shalimar",
      "MinimumOrder": "0.500",
      "DeliveryTime": "",
      "ImageUrl": "5FiXkqgVLJpKshalimar-restaurants-bhendi-bazar-mumbai-e223d.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "20",
      "RestaurantName": "Chicken Tikka",
      "MinimumOrder": "10.000",
      "DeliveryTime": "",
      "ImageUrl": "TkM8FCgtIdawChicken-Tikka-banner.png",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "21",
      "RestaurantName": "Cafe Arabia",
      "MinimumOrder": "10.000",
      "DeliveryTime": "",
      "ImageUrl": "K90rXIdFZci1joes-cafe-09.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "22",
      "RestaurantName": "chinese cuisine",
      "MinimumOrder": "25.000",
      "DeliveryTime": "",
      "ImageUrl": "DhAsHe2olE25chinese.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "23",
      "RestaurantName": "Haneen Restaurent",
      "MinimumOrder": "0.000",
      "DeliveryTime": "",
      "ImageUrl": null,
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "24",
      "RestaurantName": "karjikar's",
      "MinimumOrder": "0.000",
      "DeliveryTime": "",
      "ImageUrl": "n9dgtenV5lCq240_F_99495426_sdV0B0IGtyULi1rQlGLcbk5HDLGd8HJr.jpg",
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    },
    {
      "ID": "25",
      "RestaurantName": "MyRestaurent",
      "MinimumOrder": "10.000",
      "DeliveryTime": "",
      "ImageUrl": null,
      "OpenStatus": true,
      "PaymentOptions": "VISA, MasterCard , Maestro , American Express"
    }
  ]
}
Ripudaman
  • 41
  • 1
  • 9

1 Answers1

1

try to replace getString to optString.. As

 pojoRestaurant.setRestroName(jsonObject.optString("RestaurantName"));
                                pojoRestaurant.setDeliveryTime(jsonObject.optString("DeliveryTime"));
                                pojoRestaurant.setPaymentOption(jsonObject.optString("PaymentOptions"));
                                pojoRestaurant.setMinimumOrder(jsonObject.optString("MinimumOrder"));
                            pojoRestaurant.setRestroImage(jsonObject.optString("ImageUrl"));
Ashish
  • 371
  • 3
  • 18