在 Swift 中使用 NSSerialization.datawithJSON 2
Use NSSerialization.datawithJSON in Swift 2
一直试图让它在 Swift 2.0 中工作,错误说:
Type NSJSONWritingOptions cannot conform to protocol 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 ""
}
let options = prettyPrinted ?
NSJSONWritingOptions.PrettyPrinted : NSJSONWritingOptions(rawValue: 0)
是 swift 2.0
的正确语法
你也可以传递一个没有选项的空数组:
let options:NSJSONWritingOptions = prettyPrinted ? .PrettyPrinted : []
一直试图让它在 Swift 2.0 中工作,错误说:
Type NSJSONWritingOptions cannot conform to protocol 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 ""
}
let options = prettyPrinted ?
NSJSONWritingOptions.PrettyPrinted : NSJSONWritingOptions(rawValue: 0)
是 swift 2.0
的正确语法你也可以传递一个没有选项的空数组:
let options:NSJSONWritingOptions = prettyPrinted ? .PrettyPrinted : []