如何解决此错误;无法对空引用执行运行时绑定;C#
我已经解析了一个Json响应:如何解决此错误;无法对空引用执行运行时绑定;C#,c#,C#,我已经解析了一个Json响应: string url = "http://words.bighugelabs.com/api/2/API KEY/" + word.ToString() + "/json"; 并将其存储在名为sbb的字符串中。 然后,我将sbb存储在动态对象中,如下所示,以便检索给定单词的特定信息,例如名词。因为它每次只返回一个单词的信息 dynamic foo = JObject.Parse(sbb); var ant = foo.adjective.ant; 但在foo之
string url = "http://words.bighugelabs.com/api/2/API KEY/" + word.ToString() + "/json";
并将其存储在名为sbb的字符串中。
然后,我将sbb存储在动态对象中,如下所示,以便检索给定单词的特定信息,例如名词。因为它每次只返回一个单词的信息
dynamic foo = JObject.Parse(sbb);
var ant = foo.adjective.ant;
但在foo之后,它并不总是跟在形容词后面,它可能是名词或其他东西,所以当我尝试查看var是否为null时,我会收到错误消息。我可以做什么来检查哪种情况为空?
四宗个案分别为:
foo.adjective.ant; foo.noun.ant; foo.adverb.ant; foo.verb.ant;
做一个防御性的
null
检查
if(foo != null && foo.adjective != null)
如果您使用的是C#6,那么您也可以使用空传播运算符?
类似于
if(foo?.adjective != null)
那么:
var ant = foo.adjective != null ? foo.adjective.ant :
(foo.noun != null ? foo.noun.ant :
(foo.adverb != null ? foo.adverb.ant :
(foo.verb != null ? foo.verb.ant : null)));
if(foo.形容词!=null)
?就像一个符咒。非常感谢。