2016-04-06 12 views
-2

Ich habe dieses Objekt:kann nicht überprüfen, ob eine bestimmte Objektschlüssel null ist

var obj = JsonConvert.DeserializeObject<RootObject>(responseText); 

jetzt in einigen Fällen die Deserialisierung erzeugen zwei Schlüssel: arts und det. Der Schlüssel det ist sogar gefüllt, aber in einigen Fällen könnte der Schlüssel arts null sein. Ich überprüfe das Objekt Inhalt null wie folgt aus:

foreach(var item in obj.det){ 
    ... 
    if(!item.arts.Equal(null)){ 'the problem is here 
    ... 
    } 
} 

Das Problem ist, unter der Bedingung, insbesondere ich überprüfen, ob die arts Schlüssel gegen null anders ist, aber ich habe diese Ausnahme:

Nullreference Ausnahme war nicht verwaltet

Ich verstehe nicht, was ich falsch gemacht habe, könnte mich jemand erleuchten?

+2

Mögliche Duplikate von [Was ist eine NullReferenceException und wie behebe ich sie?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- it) – Silvermind

+0

@Silvermind Ich habe es bereits überprüft, und es gibt einen Vorschlag, 'Equals' zu verwenden. – Sandokan

+0

Ihre Aussage in Ihrem Kommentar ist falsch. Überprüfen Sie die Beispiele, die die korrekte Implementierung angeben. Sie sollten Operatoren wie '==' für 'null'-Vergleich verwenden. – Silvermind

Antwort

3

Versuchen

if(item.arts == null){ 
// do your checking operation 
} 

Ich bin nicht sicher, ob das Ihr Problem verursacht, aber im Allgemeinen erzeugt einen Fehler, ein Verfahren auf ein Null-Objekt aufrufen.

+0

@ nhouser9 Ja, scheint gut zu funktionieren, danke. Also denke ich, dass die Equals-Methode in diesem Fall nicht funktioniert, wenn das Objekt null ist. – Sandokan

+0

@Sandokan Kein Problem. Wenn ein Objekt null ist, können Sie im Allgemeinen keine seiner Methoden aufrufen. Wenn diese Antwort Ihr Problem gelöst hat, markieren Sie es als Lösung =) – nhouser9

Verwandte Themen