Как проверить, является ли массив 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
прежде чем вы получите доступ к графу.
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");
}
});
}