6

我正在解析 JSON 响应并尝试检查我的键之一是否为空。我该怎么办?我有以下内容:

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
}
4

4 回答 4

10

您可以像这样从 dic 中提取价值。

if let value = (dict["key"] as? String) 
{ 
  //NOT NULL
} 
else 
{
   //NULL
}
于 2017-02-23T05:24:22.360 回答
6

创建以下函数

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

调用要检查 null 或 nil 值的函数

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")
}
于 2017-02-23T05:40:14.113 回答
0
if let result = dict["result"] as? [String:Any], let routingNumber = result["routingNumber"] as? String { 
    print("the routingNumber is \(routingNumber)")
} else { 
    print("nil") 
}
于 2017-02-23T05:31:02.733 回答
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
    }
} 

这应该够了吧。

于 2017-02-23T05:27:36.293 回答