大佬教程收集整理的这篇文章主要介绍了swift3 – 在Swift 3中将JSON字符串转换为Dictionary,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在xcode上@L_874_6@
[code] . . . let jsonString = try? JSONserialization.jsonObject(with: data!,options: []) print(jsonString!) . . . [/code]
在xcode控制台中,@L_874_6@这个:
[code] ( { Address = "1 Infinite Loop CuperTino,CA"; Latitude = "37.331741"; Longitude = "-122"; Name = Apple; } ) [/code] I have a function [code] func convertToDictionary(text: String) -> [String: Any]? { if let data = text.data(using: .utf8) { do { return try JSONserialization.jsonObject(with: data,options: []) as? [String: Any] } catch { print(error.localizedDescription) } } return nil } [/code]
当我将jsonString传递给convertToDictionary(文本:)时
[code] let Dict = convertToDictionary(text: jsonString as! String) [/code]
在控制台中,我收到错误“无法将类型’__NSSingLeobjectArrayI'(0x10369bdb0)的值转换为’NSString'(0x1004eac60).”
但如果我硬编码json字符串然后将其传递给convertToDictionary(文本:)
[code] let hardCodedStr = "{\"Address\":\"1 Infinite Loop CuperTino,CA\",\"Latitude\":\"37.331741\",\"Longitude\":\"-122\",\"Name\":\"Apple\"}" let Dict = convertToDictionary(text: hardCodedStr) print(Dict!) [/code]
它工作得很好.这是为什么?谢谢
因此,jsonString实际上存储了一个[String:Any],甚至认为编译器认为它是Any类型:
let jsonString = try? JSONserialization.jsonObject(with: data!,options: []) print(jsonString!)
如果你试图将它传递给convertToDictionary,它接受一个String,它当然不会工作,因为字典和字符串不是兼容的类型.
如何解决这个问题呢?
问题已经解决了!你根本不需要convertToDictionary. jsonString本身就是你想要的字典.
这是你需要做的:
let jsonString = try? JSONserialization.jsonObject(with: data!,options: []) as! [String: Any] ^^^^^^^^^^^^^^^^^ Add this part
以上是大佬教程为你收集整理的swift3 – 在Swift 3中将JSON字符串转换为Dictionary全部内容,希望文章能够帮你解决swift3 – 在Swift 3中将JSON字符串转换为Dictionary所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。