2

I'm calling Google Maps and use System.JSON to parse the object. I grab my object using:

double placeLat = json["results"][0]["geometry"]["location"]["lat"];

Then I want to check wheater the third objects exists and if yes perform some actions, but apparently the following fails. I know that Google Maps returns 2 objects in this case and I want to check for the third one to avoid performing actions on null and passing them further.. The following works fine when Google Maps returns 3 objects so I believe my condition is wrong.

if (json["results"][2] != null) {

        }

I get this error:

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

Any ideas of how to properly build the if statement in case using System.JSON?

3 Answers 3

6
if(jsonobject.Count>0)
 {
 }     
Sign up to request clarification or add additional context in comments.

Comments

4

If the results array only has two entries in it, then you can't access json["results"][2] because index 2 is outside the bounds of the array.

Before you access index 2, check json["results"].Count to make sure index 2 exists. You might need to cast it to JsonArray before you access the Count.

Comments

-1
var response = await httpClient.PostAsync(uri, content);
                    var instituteDetails = await response.Content.ReadAsStringAsync();
                    **if (response.IsSuccessStatusCode && instituteDetails.Length>2)**
                    {
                        createModel = JsonConvert.DeserializeObject<IList<PaymentResponseDetailsModel>>(instituteDetails);
                        **if(createModel.Count()>0)**
                        {
                            return View(createModel);
                        }
                        else
                        {
                            return RedirectToAction("RegistrationInfo");
                        }
                       });                           
                    }

1 Comment

if (response.IsSuccessStatusCode && instituteDetails.Length>2) and if(createModel.Count()>0) worked fine if you getting empty jsonstring and model .

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.