Search code examples
c#jsongoogle-mapsif-statementsystem.json

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?


Solution

  • 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.