2017-04-15 89 views
-1

我有一个休息api,并通过Json获取所有数据,然后将其放入IOS TableView中。我的问题是,一些数据被返回NULL以JSONswift如何检查来自Json的NULL值

"vote_status":null 

我试图得到迅速的是NULL值,并将其更改为一个字符串“0”,但我有一个很难这样做。我有这个迄今为止

if var vote_status = Stream["vote_status"] as? String { 
           if (vote_status == (vote_status)[NSNull]) { 
            vote_status = "0" 
           } 
} 

但是我得到这个编译错误:

Cannot subscript a value of type 'String' with an index of type '(NSNull).Type' (aka 'NSNull.Type')

我这样做是因为似乎并没有工作,所以我不能这样做。

if (vote_status == nil) ... 
+0

如果打印你从JSON获取到控制台字典,你怎么看?如果我打印它,则为 –

+0

;它根本不会返回任何内容,甚至不为NULL它只是空的 –

+0

除非我们知道如何将JSON字符串转换为对象,否则无法回答此问题。 –

回答

3

你只需要有条件地投你的字典v ALUE为String,并使用无合并运算??分配"0"失败null的情况下:

let vote_status = Stream["vote_status"] as? String ?? "0" 
1

雨燕3.0

func checkNull(obj : AnyObject?) -> AnyObject? { 
    if obj is NSNull { 
     return nil 
    } else { 
     return value 
    } 
} 

object.feature = checkNull(dict["feature"]) 

试试这个

vote_status is NSNull 
+0

完美,工作感谢 –

+0

欢迎@RomeTorres –

1

你可以试试这个

func checkForNull(value:AnyObject) -> String 
    { 
     if(value as! NSObject == NSNull() || value as! String == "") 
     { 
      return " " 
     } 
     else 
     { 
      return value as! String 
     } 
    }