【发布时间】:2017-02-16 14:29:12
【问题描述】:
我正在从 Facebook 检索用户字段,如下所示:
【问题讨论】:
-
在尝试通过索引访问内部数据之前,您需要检查
myInfo.education[0].concentration是否存在。 -
看起来这就是问题所在!谢谢!
我正在从 Facebook 检索用户字段,如下所示:
【问题讨论】:
myInfo.education[0].concentration 是否存在。
这将是使用null conditional operator 的好地方:
if (myInfo.education[0]?.concentration[0]?.name != null)
如果education[0] 或concentration[0] 为空,它将跳过链的其余部分。
【讨论】:
我认为你正在寻找的是
(myInfo.education[0]?.concentration[0]?.name != null)
但我相信只有当属性实际上在对象上时它才会起作用,即 json 部分没有丢失。如果教育根本不在对象上,我认为这仍然会爆炸。
我的意思是
{ "id": "757111564344608", “教育”: [], “图片”:{
可以,但是
{ "id": "757111564344608", “图片”:{
会抛出异常。唯一可能更进一步的方法是
public dynamic myInfo;
myInfo = fb.Get("/me?...........
Type type = myInfo.GetType();
foreach (var pi in type.GetProperties())
{
if (pi.Name.ToLower() == "education")
{
var val = pi.GetValue(myInfo).type;
//do stuff to get child elements based on value
}
}
GetValue 行可能需要更改,您可能需要遍历 Education 的属性才能找到“类型”
【讨论】: