大佬教程收集整理的这篇文章主要介绍了ios – 带有Swift的NSDictionary的JSON字符串,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
let JSONDictionary: Dictionary = NSJSONserialization.JSONObjectWithData(JSONData!,options: nil,error: &error) as NSDictionary
这行代码是给我问题的代码,它会抛出一个BAD_EXEC_instrUCTION.
我的问题:如何将JSON转换为NSDictionary?
>您必须确保您的数据对象确实存在
>您必须确保数据对象可以转换为JSON
>您必须确保JSON实际上包含一个Dictionary
您应该使用Swifts条件转换和它的可选绑定功能.
如果让JSONData = JSONData检查JSONData不是nil,则可选绑定.如果无法接收数据,您使用的强制解包(JSONData!)可能会崩溃.
如果让json = NSJSONserialization.JSONObjectWithData检查数据是否可以转换为JSON对象,则可选绑定.条件演员为? NSDictionary检查JSON对象是否实际上是字典.您目前不使用这些检查,将对象强制转换为NSDictionary.如果对象无效json,或者它不是字典,那么会崩溃.
我会推荐这样的东西:
var error: NSError? if let JSONData = JSONData { // check 1 if let json: AnyObject = NSJSONserialization.JSONObjectWithData(JSONData,error: &error) { // check 2 if let jsonDictionary = json as? NSDictionary { // check 3 println("Dictionary received") } else { if let jsonString = NSString(data: JSONData,encoding: NSUTF8StringEncoding) { println("JSON String: \n\n \(jsonString)") } fatalError("JSON does not contain a Dictionary \(json)") } } else { fatalError("Can't parse JSON \(error)") } } else { fatalError("JSONData is nil") }
您可以将check 2和3合并为一行,并检查NSJSONserialization是否可以直接创建NSDictionary:
var error: NSError? if let JSONData = JSONData { // check 1. if let JSONDictionary = NSJSONserialization.JSONObjectWithData(JSONData,error: &error) as? NSDictionary { // check 2. and 3. println("Dictionary received") } else { if let jsonString = NSString(data: JSONData,encoding: NSUTF8StringEncoding) { println("JSON: \n\n \(jsonString)") } fatalError("Can't parse JSON \(error)") } } else { fatalError("JSONData is nil") }
以上是大佬教程为你收集整理的ios – 带有Swift的NSDictionary的JSON字符串全部内容,希望文章能够帮你解决ios – 带有Swift的NSDictionary的JSON字符串所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。