2017-02-23 22 views
-2

Я разбираю ответ JSON и пытаюсь проверить, является ли один из моих ключей нулевым. Как я могу это сделать? У меня есть следующие:Проверьте, является ли разобранный json NSNULL

var routingNumber = (dic.value(forKey: "result") as! NSDictionary).value(forKey: "routingNumber") as! String 

и это возвращает:

Не удалось бросить значение типа 'NSNull' (0x107d238c8) к 'NSString' (0x107329c40).

Как бы проверить, является ли значение NSNULL?

if(something != NSNULL){ 
    do something 
}else{ 
    do something else 
} 
+0

если пусть routingNumber = (DIC [ "результат"], как? [String : Any])? ["RoutingNumber"] as? String {} – Suen

+0

Не используйте 'NSDictionary' в Swift. Используйте словарь Swift. Не используйте 'value (forKey:)', чтобы получить значение, если у вас нет конкретной причины использовать KVC (которого у вас нет в этом случае). – rmaddy

+0

Вы не используете словарь Swift? –

ответ

2

Вы можете извлечь значение из dic, как это.

if let value = (dict["key"] as? String) 
{ 
    //NOT NULL 
} 
else 
{ 
    //NULL 
} 
+1

использовать управление + k для форматирования вашего кода. –

+0

Скобки не нужны. – rmaddy

+0

Означает ли это, что значение 'dict [" key "]' не равно nil И также 'String' (а не другие типы)? – hzxu

0

У меня была такая же проблема один раз.

ПРОВЕРКА ДЛЯ ЕСЛИ NSNULL

if let result = dic["result"] as? NSDictionary { 
    // There is a dictionary 

    if let routingNumber = result["routingNumber"] as? String { 
     // There is a routingNumber 
    } 
    else if let routingNumber = result["routingNumber"] as? NSNull { 
     // There is routingNumber but Null 
    } 
    else { 
     // No routingNumber 
    } 
} 

Это должно сделать трюк.

+0

Зачем использовать 'NSDictionary'? Используйте словарь Swift. – rmaddy

+1

пользователь2423476 вопрос используется 'NSDictionary'. –

0
if let result = dict["result"] as? [String:Any], let routingNumber = result["routingNumber"] as? String { 
    print("the routingNumber is \(routingNumber)") 
} else { 
    print("nil") 
} 
1

создать ниже функции

func isNsnullOrNil(object : AnyObject?) -> Bool 
{ 
    if (object is NSNull) || (object == nil) 
    { 
     return true 
    } 
    else 
    { 
     return false 
    } 
} 

вызова функции, где вы хотите, чтобы проверить нулевую или нулевую стоимость

if isNsnullOrNil((dic.value(forKey: "result") as! NSDictionary).value(forKey: "routingNumber")) 
{ 
    print("object is null or nil") 
} 
else 
{ 
    print("object is not null or nil") 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^