Проверка нулевого значения в Objective-C, которое было возвращено из строки JSON - PullRequest
77 голосов
/ 29 января 2011

У меня есть JSON объект, поступающий с веб-сервера.

Журнал выглядит примерно так:

{          
   "status":"success",
   "UserID":15,
   "Name":"John",
   "DisplayName":"John",
   "Surname":"Smith",
   "Email":"email",
   "Telephone":null,
   "FullAccount":"true"
}

Обратите внимание, что телефон поступает какnull, если пользователь не вводит его.

При назначении этого значения для NSString, в NSLog это выглядит как <null>

Я присваиваю строку какthis:

NSString *tel = [jsonDictionary valueForKey:@"Telephone"];

Как правильно проверить это значение <null>?Это мешает мне сохранить NSDictionary.

Я пытался использовать условия [myString length] и myString == nil и myString == NULL

Кроме того, где лучшее место в документации iOS длячитать об этом?

Ответы [ 15 ]

0 голосов
/ 18 февраля 2016
if([tel isEqual:[NSNull null]])
{
   //do something when value is null
}
0 голосов
/ 15 февраля 2016

Я много пробовал метод, но ничего не получалось. Наконец это сработало для меня.

NSString *usernameValue = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"usernameKey"]];

if ([usernameValue isEqual:@"(null)"])
{
     // str is null
}
0 голосов
/ 27 декабря 2013

Попробуйте это:

if (tel == (NSString *)[NSNull null] || tel.length==0)
{
    // do logic here
}
0 голосов
/ 11 февраля 2013

Лучше всего будет, если вы будете придерживаться передового опыта - то есть использовать реальную модель данных для чтения данных JSON.

Посмотрите на JSONModel - он прост в использовании и автоматически преобразует значения [NSNUll null] в * nil *, чтобы вы могли выполнять свои проверки как обычно в Obj-c like:

if (mymodel.Telephone==nil) {
  //telephone number was not provided, do something here 
}

Взгляните на страницу JSONModel: http://www.jsonmodel.com

Вот также простое руководство по созданию приложения на основе JSON: http://www.touch -код-magazine.com/how-to-make-a-youtube-app-using-mgbox-and-jsonmodel/

0 голосов
/ 06 февраля 2013

Здесь вы также можете сделать это, проверив длину строки, т.е.

if(tel.length==0)
{
    //do some logic here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...