【发布时间】:2017-09-20 13:57:19
【问题描述】:
所以我想将 AnyObject 列表分配给结构为 [String:AnyObject] 的字典的键
这是我的代码:
let list = try JSONSerialization.jsonObject(with: newData, options: .allowFragments) as! [AnyObject]
let parsedResult = [String:AnyObject]()
parsedResult["dataList"] = list
callback(false, parsedResult)
我正在解析来自 http 请求的数据。我得到这个错误:
无法将类型 [AnyObject] 的值赋给类型 AnyObject?
不是 AnyObject 的列表,还是一个对象?
【问题讨论】:
-
让 parsedResult = [String:[AnyObject]]()
-
现在我面临 tis 错误:Any 类型没有下标成员。帮助?这就是它发生的地方 - if let accountKey = data?["account"]?["key"], let sessionID = data?["session"]?["id"]
-
"不是 AnyObject 的列表,还是一个对象?"不,
Array是一个结构,而不是一个类,所以它是Any的成员,但不是AnyObject的成员。请注意,您需要尽快将此[String:Any]解析为真实(非任何)数据结构;绝对不要将其存储在属性中。使用Any会很快变得令人抓狂。看看新的 Swift 4JSONDecoder,它通过JSONSerialization避免了这个问题。 -
谢谢大家!有效!我是ios新手!我来自 Javascript,语法更有意义:)
标签: arrays json swift dictionary