1

我正在调用 Google Maps 并使用 System.JSON 来解析对象。我使用以下方法抓取我的对象:

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

然后我想检查第三个对象是否存在,如果是,则执行一些操作,但显然以下失败。我知道 Google Maps 在这种情况下返回 2 个对象,我想检查第三个对象以避免对 null 执行操作并进一步传递它们。当 Google Maps 返回 3 个对象时,以下工作正常,所以我相信我的条件是错误的。

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

        }

我收到此错误:

指数超出范围。必须是非负数且小于集合的大小。参数名称:索引

在使用 System.JSON 的情况下如何正确构建 if 语句的任何想法?

4

3 回答 3

6
if(jsonobject.Count>0)
 {
 }     
于 2019-05-08T06:20:34.607 回答
2

如果结果数组中只有两个条目,那么您将无法访问json["results"][2],因为索引 2 超出了数组的范围。

在访问索引 2 之前,请检查json["results"].Count以确保索引 2 存在。JsonArray在访问 Count 之前,您可能需要将其转换为。

于 2016-05-21T19:28:43.693 回答
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");
                        }
                       });                           
                    }
于 2020-05-07T13:21:54.097 回答