2016-04-06 5 views
-2

У меня есть этот объект:Не удается проверить, является ли конкретный ключевой объект является нулевым

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

сейчас в некотором случае десериализации генерировать два ключа: arts и det. Клавиша det даже заполнена, но в некоторых случаях ключ arts может быть пустым. Я проверить содержимое объекта null так:

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

Проблема заключается в состоянии, в частности, проверить, если ключ arts отличается от null, но я получил это исключение:

NullReference Исключение было не удалось

Я не понимаю, что я сделал не так, мог ли кто-нибудь просветить меня?

+2

Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- это) – Silvermind

+0

@Silvermind Я уже проверил его, и есть предложение использовать 'Equals'. – Sandokan

+0

Ваше заявление в ваших комментариях неверно. Проверьте примеры, которые указывают правильную реализацию. Вы должны использовать такие операторы, как '==' для сравнения «null». – Silvermind

ответ

3

Попробуйте

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

Я не уверен, если это вызывает у вас проблемы, но в целом вызов метода на нулевой объект создает ошибку.

+0

@ nhouser9 Да, кажется, работает хорошее спасибо. Поэтому я предполагаю, что метод «Equals» не работает в этом случае, если объект имеет значение null. – Sandokan

+0

@Sandokan Нет проблем. В общем случае, если объект имеет значение null, вы не можете вызвать один из его методов. Если этот ответ решит вашу проблему, отметьте его как решение =) – nhouser9