当一个使用一个方法发现后面 throws 说明可能会抛出异常 须要try 进行处理 json
1 try? 若是解析成功就有值 不然返回nil (推荐)spa
2 try! 若是解析成功就有值 不然直接崩溃 (不推荐)code
3 try 若是 若是解析成功就有值 若是出错 可以处理异常 输出错误 do try catchblog
4 oc 中 ARC 开发自动添加 release autorelease retain 若是用try catch 一旦不平衡就会出现内存泄漏内存
let jsonStr = "{\"name\":.\"上官\"}" let data = jsonStr.data(using: .utf8) // try? 若是解析成功就有值 不然返回nil (推荐) let json = try? JSONSerialization.jsonObject(with: data!, options: []) // try! 若是解析成功就有值 不然直接崩溃 (不推荐) let json0 = try! JSONSerialization.jsonObject(with: data!, options: []) // // // try 若是 若是解析成功就有值 若是出错 可以处理异常 输出错误 do try catch // do { let json1 = try JSONSerialization.jsonObject(with: data!, options: []) print( json1 ) } catch { print(error) } // print( json )