Always_hungry Always_hungry - 6 months ago 73
JSON Question

How to check if json array is empty in c#?

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?

Answer

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