在swift ios中解析NSJSON序列化中的json时出错
Posted
技术标签:
【中文标题】在swift ios中解析NSJSON序列化中的json时出错【英文标题】:Getting error while parsing json in NSJSON serialization in swift ios 【发布时间】:2017-01-16 08:36:39 【问题描述】: func connectionDidFinishLoading(_ connection: NSURLConnection)
NSLog("\(statusResponseData)")
let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary
当我将代码从 swift 2.2 转换为 swift 3.0 时,出现以下错误。
无法使用列表类型的参数调用 json 对象(使用 NSMutable 数据!选项:JSONSerialization.ReadingOptions)。
请帮我解决这个问题。
【问题讨论】:
阅读 Swift 3 发行说明,您没有这样做,并阅读您必须对 Swift 2 代码进行哪些更改。除非您知道原因,否则不要使用 mutableContainers。我希望您知道,如果出现任何问题,您的代码将会崩溃。 @gasher729。我是 swift 新手。你能帮我写代码吗? 【参考方案1】:替换:
let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary
与:
if let strData = try JSONSerialization.jsonObject(with: statusResponseData, options: []) as! JSONObject
//Do what you need to!
我不知道为什么所有教程都建议使用mutableContainers
选项。使用原生集合类型时,您在 Swift 中根本不需要它。
【讨论】:
为什么?这就是所谓的“货物崇拜编程”。以上是关于在swift ios中解析NSJSON序列化中的json时出错的主要内容,如果未能解决你的问题,请参考以下文章