在Swift 2中使用NSSerialization.datawithJSON

6

我一直在尝试在Swift 2.0中使这个工作,但是出现了错误:

类型NSJSONWritingOptions无法符合协议NilLiteralConvertible

var options = prettyPrinted...处。

func JSONStringify(value: AnyObject,prettyPrinted:Bool = false) -> String {

    var options = prettyPrinted ? NSJSONWritingOptions.PrettyPrinted : nil

    if NSJSONSerialization.isValidJSONObject(value) {
        do{
            let data = try NSJSONSerialization.dataWithJSONObject(value, options: options)
            if let string = NSString(data: data, encoding: NSUTF8StringEncoding) {
                return string as String
            }
        } catch {

        }
    }
    return ""
}
2个回答

14
let options = prettyPrinted ? 
         NSJSONWritingOptions.PrettyPrinted : NSJSONWritingOptions(rawValue: 0)

是Swift 2.0的正确语法。


5
您可以传递一个空数组来表示没有选项:

您可以传递一个空数组来表示没有选项:

let options:NSJSONWritingOptions = prettyPrinted ? .PrettyPrinted : []

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接