如何在Swift中处理json null值

Aya*_*bar 14 null json core-data swift

我和Json玩了最后两天,面对很多好奇的问题,而且由于堆栈溢出,它对我很有帮助.这是json特色键具有两种类型的值String Type.

 "featured":"1"
Run Code Online (Sandbox Code Playgroud)

要么

"featured": null,
Run Code Online (Sandbox Code Playgroud)

我尝试了很多来处理这个但失败了

 if dict.objectForKey("featured") as? String != nil {
    featured = dict.objectForKey("featured") as? String
    }
Run Code Online (Sandbox Code Playgroud)

第2步)

    let null = NSNull()
    if dict.objectForKey("featured") as? String != null {
    featured = dict.objectForKey("featured") as? String
    }
Run Code Online (Sandbox Code Playgroud)

第3步)

    if dict.objectForKey("featured") as? String != "" {
    featured = dict.objectForKey("featured") as? String
    }
Run Code Online (Sandbox Code Playgroud)

但不幸的是找不到解决办法,你的回答将不胜感激.

Cha*_*har 42

试试这个

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

object.feature = nullToNil(dict["feature"])
Run Code Online (Sandbox Code Playgroud)

在这里,您可以使用此方法,它将null值转换为nil并且不会导致应用程序崩溃.

你也可以用作?

object.feature = dict["feature"] as? NSNumber
Run Code Online (Sandbox Code Playgroud)

谢谢.


Par*_*ram 6

这是一个工作代码,类型转换操作符(作为?)将在这里做.Null不会被强制转换为String,因此执行将转到failure块.

if let featured = dict["featured"] as? String {
    print("Success")
}
else {
    print("Failure")
}
Run Code Online (Sandbox Code Playgroud)


Him*_*shu 5

尝试这个!

if let demoQuestion = dict.objectForKey("featured"){
     let getValue: String = demoQuestion as! String
}
else {
print("JSON is returning nil")
}
Run Code Online (Sandbox Code Playgroud)