我正在开展一个项目,我正在使用POST请求从我的队友设置的AWS服务器返回JSON数据。这就是我的代码 - 非常标准。
let task : URLSessionDataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) in
if let data = data {
if let response = try! JSONSerialization.jsonObject(
with: data, options: []) as? [String: Any] {
let zones = response["body"]! as? [[String: Any]] ?? []
返回的JSON看起来像这样
"区域的内容"在这里不重要。我想要的是区域数组,但它包含在这个名为" body" (我的后端人说,这是AWS默认发送它的方式,所以它不是他可以改变的东西)。我遇到的问题是我目前拥有的那些应该得到区域数组(let zones = response["body"]! as? [[String: Any]] ?? []
)的行总是给我空数组(并且没有?? []
它给了我nil )。如果我摆脱了类型转换,我得到了区域数组,但它的类型为Any
,所以我无法按照我想要的方式解析它。有关如何将区域数组作为数组获取的任何想法,以便我可以解析它吗?
答案 0 :(得分:1)
您将获得与键"body"
关联的值,该值从图像本身是字典而不是数组。使用返回的字典获取与键"zones"
关联的值,这是您追求的数组。 HTH