Как проверить, является ли массив JSON пустым в C#?

Я звоню в Google Maps и использую System.JSON для разбора объекта. Я хватаю свой объект, используя:

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

Затем я хочу проверить, существуют ли третьи объекты, и если да, выполнить некоторые действия, но, по-видимому, следующее не помогает. Я знаю, что в этом случае Google Maps возвращает 2 объекта, и я хочу проверить третий, чтобы избежать выполнения действий с нулем и их дальнейшей передачи. Следующее работает нормально, когда Google Maps возвращает 3 объекта, поэтому я считаю, что мое состояние неверно.

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

        }

Я получаю эту ошибку:

Индекс был вне диапазона. Должен быть неотрицательным и меньшим, чем размер коллекции. Имя параметра: индекс

Любые идеи о том, как правильно построить оператор if в случае использования System.JSON?

1 ответ

Решение

Если массив результатов содержит только две записи, вы не можете получить доступ json["results"][2] потому что индекс 2 находится за пределами массива.

Прежде чем получить доступ к индексу 2, проверьте json["results"].Count чтобы убедиться, что индекс 2 существует. Возможно, вам придется бросить его на JsonArray прежде чем вы получите доступ к графу.

if(jsonobject.Count>0)
 {
 }     
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");
                        }
                       });                           
                    }
Другие вопросы по тегам