Check if parsed json is NSNULL

12k views Asked by At

I am parsing a JSON response and trying to check if one of my keys is null. How would I go about this? I have the following:

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

and this returns:

Could not cast value of type 'NSNull' (0x107d238c8) to 'NSString' (0x107329c40).

How would I check if the value is NSNULL?

if( something != NSNULL){
    do something
}else{
    do something else
}
4

There are 4 answers

2
Amit Singh On

You can extract value from dic like this.

if let value = (dict["key"] as? String) 
{ 
  //NOT NULL
} 
else 
{
   //NULL
}
2
Brandon A On

I had this same problem once.

CHECK FOR IF 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
    }
} 

That should do the trick.

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

create below function

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

call function where you want to check for null or nil value

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")
}